繁体   English   中英

如何获取通道中的元素数量<T> ?

[英]How to get the number of elements in a Channel<T>?

我正在计划一个订阅者和发布者系统,我计划在其中使用频道。 我想记录我使用的每个频道中的元素数量,以便我可以根据系统中的瓶颈调整发布者/订阅者的数量。

我开始将ChannelChannelReaderChannelWriter包装到我自己的类中来计算写入和读取的数量,但这感觉就像一个黑客。 有没有更好的办法?

使用来源,卢克 消息来源告诉您 (a) 没有公共 API 可以做到这一点,(b) 您可以使用反射来获取有界和无界通道上的私有属性ItemsCountForDebugger的值,并且 (c) 尽管没有锁定,但这是安全的在吸气剂中。 当然,这是一个黑客。 反射 hack 是否比包装类 hack 更好是一个品味问题。 用于获取Channel<T>中元素大致数量的公共 API早在 2018 年就被请求,并将添加到 .NET Core 5.0(计划于 11 月发布)中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM