[英]How to get the number of elements in a Channel<T>?
我正在计划一个订阅者和发布者系统,我计划在其中使用频道。 我想记录我使用的每个频道中的元素数量,以便我可以根据系统中的瓶颈调整发布者/订阅者的数量。
我开始将Channel
、 ChannelReader
和ChannelWriter
包装到我自己的类中来计算写入和读取的数量,但这感觉就像一个黑客。 有没有更好的办法?
使用来源,卢克。 消息来源告诉您 (a) 没有公共 API 可以做到这一点,(b) 您可以使用反射来获取有界和无界通道上的私有属性ItemsCountForDebugger
的值,并且 (c) 尽管没有锁定,但这是安全的在吸气剂中。 当然,这是一个黑客。 反射 hack 是否比包装类 hack 更好是一个品味问题。 用于获取Channel<T>
中元素大致数量的公共 API早在 2018 年就被请求,并将添加到 .NET Core 5.0(计划于 11 月发布)中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.