我开发了一个数据采集子系统作为 DLL,它使用自己的线程捕获数据并使用 ObservableCollections 发布数据。我面临几个问题,因为事件的消费者在收到 ObservableCollection 事件时会执行昂贵的操作,这使得我的引擎捕获数据的速度比预期的要慢。
我计划在不同的线程中发送事件以避免这个问题,但我有几个问题:
public class ObservableCollection2
{
public void Add()
{
_internalObservableCollection.Add();
new Thread() { => Raise the event }
}
}
- 这是标准解决方案已经解决的问题吗?看起来线程争用应该是相对常见的。
- 使用线程不会严重降低应用程序的性能?
- 使用 ThreadPool 不会使用所有可用的线程,因为在子系统中每秒发送 100 到 200 个通知是正常的?
谢谢你的想法。