一系列BackgroundWorkers好的做法是耗时的任务吗?

时间:2016-05-12 09:52:00

标签: c# parallel-processing backgroundworker threadpool multicore

在C#中,我正在考虑创建一个BackgroundWorkers数组来处理时间密集型问题。每个帖子都可以持续几分钟。

显然,'threadpool'线程(这是BackgroundWorker使用的线程)理想情况下不会持续超过half a second。我引用:

  

重要的是,只有当它所做的工作有限时才使用线程池线程,理想情况下不会超过半秒。

我想知道这背后的原因,并询问如果我继续前进会产生什么后果。这是因为它与线程/任务相比速度较慢,还是与内存相关,或者是因为它使系统陷入困境,还是其他问题?

该帖子的另一条评论:

  

因此,它最适合短时间的工作,而不是性能重要的任何事情。“

从我的实验中,我没有发现这种情况。至少对于我的(令人尴尬的并行)问题,在四核系统上进行多次测试,4 BackgroundWorkers导致相对于使用4 Threads没有明显的性能下降(并且这些中的任何一个使得程序的运行速度几乎是预期的BackgroundWorkerThread的4倍。

作为BackgroundWorker使用起来更简单,从我的角度来看,我认为没有问题。如果我弄错了,请说服我。

0 个答案:

没有答案