提问
C# Channel有哪些技巧
回答
- 判断管道中是否还有任务
return _channel.Reader.Count > 0;
结合Channel.CreateUnbounded (无边界管道)可实现整体任务缓存,避免重复写入
-
慎用ChannelWriter
.Complete
这会造成管道关闭,无法写入数据,对于复用管道造成异常 -
调用ChannelReader
.ReadAllAsync ,会读取管道中所有数据,但只要没有处理完所有数据channel.Reader.Count 不会为0