我试图使我的代码在发生某些情况(例如用户退出命令)时退出程序。
这是我运行程序的方式:

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对象传递到命令循环中,并在完成输入后关闭通道。)

09-26 20:18