我试图使我的代码在发生某些情况(例如用户退出命令)时退出程序。
这是我运行程序的方式:
fun main() = runBlocking {
Bot().start()
}
不幸的是,在exitProcess(0)
之外调用Thread.currentThread().interrupt()
或start()
似乎没有任何作用,这在我的用例中确实不方便。有没有办法解决?
最佳答案
runBlocking {
val job = launch { start() }
// Process input via other APIs here. When done:
job.cancel()
}
(您可能希望研究channels,以便将Cmd
对象传递到命令循环中,并在完成输入后关闭通道。)