在C#Application中创建大量线程的性能影响

时间:2016-05-30 06:48:46

标签: c# multithreading performance

我们正在开发一个需要根据参数值的变化非常频繁地执行某些小操作(表达式评估)的应用程序。为了执行这些小操作,我们正在创建执行评估和终止的线程。我的问题是,创建大量线程对性能的影响是什么,寿命很短。让我们说每秒100到200个线程,其寿命不会超过一秒。

threadpool的问题是由于后台线程不可用,某些操作必须等待。这就是为什么在需要时切换到创建新线程的原因。

任何人都可以在这种情况下分享对性能影响的一些见解,并建议是否有更好的方法来实现这一目标。感谢

1 个答案:

答案 0 :(得分:0)

在.Net中创建和销毁线程这一事实很简单,并不意味着这些操作的成本微不足道。关于处理器内核上的线程调度(上下文切换)也可以说同样的事情,所以除非你的机器上有足够数量的内核,否则你不想过度使用这些内容。

话虽如此,我知道您尝试做的事情已经由.Net TaskScheduler class管理。所有你需要做的就是使用它。