打电话后Channel.close()
等待Channel.isClosedForReceive
成为真的最好的方法是什么?
我正在按顺序处理消息,并希望返回调用后处理的最大消息Channel.close()
。但是,如果我只是在调用后获取最大处理消息,close()
则在消耗“关闭令牌”之前通道中可能有一些消息,导致实际最大处理消息大于返回的值。
基于文档,Channel.close()
我认为 Channel.isClosedForReceive 是我应该等待的。但我期待一些挂起功能等待,而不是不得不轮询它的状态。
/**
* Immediately after invocation of this function
* [isClosedForSend] starts returning `true`. However, [isClosedForReceive][ReceiveChannel.isClosedForReceive]
* on the side of [ReceiveChannel] starts returning `true` only after all previously sent elements
* are received.
**/