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

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

#1楼 票数:4 已采纳

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

  ask by Milan Gulyas translate from so

未解决问题?本站智能推荐:

1回复

后台任务中的.Net Core Channel

我想在后台服务中使用 chanel,但是在运行我的代码时出现此错误,这是我需要做的。 抱歉英语不好 尝试激活“ALGY.Util.SendEmailService”时无法解析“System.Threading.Channels.ChannelReader`1[ALGY.Model.SendMa
1回复

如何获取无缓冲通道中的元素数

我的程序处于死锁状态,我想调试它并告诉无缓冲通道中有多少个元素,Go中有什么方法可以做到这一点? 以下代码未如我所愿输出2(进一步导致死锁,这也是我找不到原因的原因)
1回复

GUI应用程序中的Tcl通道

我试图将Tcl解释器嵌入到C#GUI应用程序中,并且一切正常,甚至将NewFunction附加到TclCommand。 但是有一件事对我来说很难,我想将stdout,stdin,stderr重定向到某些TextBox。 我现在正在使用C ++,因为它更容易调试和编译。 所以我用代码
2回复

强制WCF通道到ip地址

我有两台计算机,它们通过以太网连接,我已经建立了WCF连接,并且一切正常,但是,当我在本地PC上托管与要通信的PC相同的WCF,然后通过进行WCF请求时,一个通道,请求不会发送到远程PC,而是发送到我的本地PC。 有没有一种方法可以强制来自某个频道的wcf请求通过特定的ipaddress而不仅
1回复

实现到C#接口的可插入通道

假设我有一个接口IMyComponent,我想直接调用它,或者通过WCF或其他一些通信通道调用它,我应该如何设计它? 我的点子: 将其分为提供者和消费者部分: 并构建一个将这两个接口连接在一起的对象: MyComponent(MyComponentProvider)&l
1回复

如何向现有绑定添加自定义WCF协议通道

我试图编写没有特定功能的WCF-Protocol-Channel。 在此通道中,我想添加一些行为以在由Web服务处理之前和通过Web服务处理之后查找SOAP-Message。 但是我找不到任何提示如何将自定义通道添加到诸如basicHttpBinding之类的默认绑定中。 背景是,我
2回复

如何静音或仅选择一个音频通道?

我知道如何在 C# 中静音或仅选择一个音频通道。 我只能在左/右声道中播放音频文件。 是否可以? 我需要做什么?
2回复

emgu cv矩阵访问行和带有通道c#的cloum

如何访问具有指定行,列和通道的矩阵?