C# Channel实战 连招

发布时间 2023-04-13 10:03:17作者: 喜爱糖葫芦

提问

C# Channel有哪些技巧

回答

  1. 判断管道中是否还有任务
return _channel.Reader.Count > 0;

结合Channel.CreateUnbounded (无边界管道)可实现整体任务缓存,避免重复写入

  1. 慎用ChannelWriter.Complete
    这会造成管道关闭,无法写入数据,对于复用管道造成异常

  2. 调用ChannelReader.ReadAllAsync ,会读取管道中所有数据,但只要没有处理完所有数据channel.Reader.Count 不会为0