首页 > 解决方案 > 一次增加后台工作人员处理的数量

问题描述

我正在编写一个 C# .NET 软件,它产生了一堆后台工作人员。所有工作人员立即进入“IsBusy”状态,但是,只有 8 个工作人员同时通过他们的 DoWork 方法进行处理。

有没有办法一次增加多少次跑步?

这就是代码生成后台工作人员的方式:

      foreach (RESTObjectPrintFile t in printFilesList)
      {
          BackgroundWorker bgWorker = new BackgroundWorker();
          bgWorker.DoWork += BgWorker_DoWork;
          bgWorker.RunWorkerCompleted += BgWorker_RunWorkerCompleted;

          bgWorkerList.Add(bgWorker);

          bgWorker.RunWorkerAsync(t);
      }

标签: c#.netbackgroundworker

解决方案


尝试以下

ThreadPool.SetMinThreads(20, 20);

另请查看这篇文章 http://www.albahari.com/threading/#_Optimizing_the_Thread_Pool

在底部它说:

默认值为每个内核一个线程。


推荐阅读