【发布时间】:2019-01-14 23:00:54
【问题描述】:
有没有一种好方法可以让频道在关闭后忽略优惠而不会引发异常?
目前,似乎只有 try catch 可以工作,因为 isClosedForSend 不是原子的。
或者,如果我根本不关闭频道,会有问题吗? 对于我的特定用例,我使用通道作为 Android livedata 的替代方案(因为除了从任何线程发送值并从主线程侦听之外,我不需要任何好处)。在这种情况下,我可以通过仅在我想发送值时发送值的生产者来收听通道,而忽略所有其他输入。
理想情况下,我有一个解决方案,ReceiveChannel 仍然可以完成收听,但SendChannel 在提供新值时永远不会崩溃。
【问题讨论】: