Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin channel.receive()在withTimeout()块中使用时不超时_Kotlin_Kotlin Coroutines - Fatal编程技术网

Kotlin channel.receive()在withTimeout()块中使用时不超时

Kotlin channel.receive()在withTimeout()块中使用时不超时,kotlin,kotlin-coroutines,Kotlin,Kotlin Coroutines,当频道在特定时间后没有收到消息时,我希望channel.receive()超时以执行其他操作 我尝试过使用withTimeout()块,但实际上它没有超时 val incomingNotification = withTimeout(1000L) { (session.outgoing as Channel<Frame>).receive() } val incomingNotification=withTimeout(1000L){ (session.outgoing a

当频道在特定时间后没有收到消息时,我希望
channel.receive()
超时以执行其他操作

我尝试过使用withTimeout()块,但实际上它没有超时

val incomingNotification = withTimeout(1000L) {
    (session.outgoing as Channel<Frame>).receive()
}
val incomingNotification=withTimeout(1000L){
(session.outgoing as Channel).receive()
}
是否
receive()
实际上是不可取消的?
我做错了什么?

协同程序运行在哪个调度程序上?调度程序可能正忙于另一个任务,以便在超时时恢复执行它正在JUnit测试所用的runBlocking块中运行自己的协同程序。是的@EugenePetrenko你是对的。调度程序一直很忙,因为我在其他地方的同一线程上使用了另一个runBlocking。现在已经修好了。谢谢。你到底是怎么修好的?我也有同样的问题。协同程序运行在哪个调度程序上?调度程序可能正忙于另一个任务,以便在超时时恢复执行。它正在JUnit测试所用的runBlocking块中运行自己的协同程序。是的@EugenePetrenko你是对的。调度程序一直很忙,因为我在其他地方的同一线程上使用了另一个runBlocking。现在已经修好了。谢谢。你到底是怎么修好的?我也有同样的问题。