很抱歉,如果这是一个愚蠢的问题,但可以创建一个后台工作者数组吗?
我正在使用这篇文章的例子: how-to-use-wpf-background-worker
我正在进行文档处理,并希望将每个文档放在自己的线程中。或者我应该为每个文档使用相同的后台工作者对象吗?
有任何洞察力。
答案 0 :(得分:3)
你可以这样做,但我觉得这是非常不可取的。只要您需要多个BackgroundWorker
,就应该开始考虑使用其他形式的线程。
有关替代方案,请查看MSDN上的Task
Class和Asynchronous Programming with Async and Await (C# and Visual Basic)页面。
答案 1 :(得分:2)
您可以创建
List<BackgroundWorker> lstMyWorkers = new List<BackgroundWorker>();
列表数组没问题。但要注意。那些线程没有必要加快速度。
运行太多线程最终会比单线程上的内联代码版本慢得多。
甜蜜点是6到10个同步线程。 10个线程是因为你一次非常需要这么多,这是非常罕见的。我在模拟软件的工作中使用它,但除了那些我还没有看到超过2-3的用途。我不知道做好的文档或指南网页,但是可能不会,但可能是另一个堆叠器可能有一个很好的链接。