Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 增加一次处理的后台工作人员数量_C#_.net_Backgroundworker - Fatal编程技术网

C# 增加一次处理的后台工作人员数量

C# 增加一次处理的后台工作人员数量,c#,.net,backgroundworker,C#,.net,Backgroundworker,我正在写一个C#.NET软件,它产生了一群背景工作者。所有的工作人员立即进入“IsBusy”状态,然而,只有8名工作人员同时通过他们的DoWork方法进行处理 有没有办法增加每次跑步的次数 这是代码生成后台工作人员的方式: foreach (RESTObjectPrintFile t in printFilesList) { BackgroundWorker bgWorker = new BackgroundWorker(); bg

我正在写一个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);
      }
试试下面的方法

ThreadPool.SetMinThreads(20, 20);
还要检查这篇文章

底部写着:

默认值是每个核心一个线程


你能分享你的一段代码吗?哪个框架是ASP.NET核心还是辅助服务?也许是WPF项目?也许你有8个逻辑核。。很难说我能想象你有一台8核的机器吗?有没有办法增加每次跑步的次数?获得一个具有更多功能的CPUcores@Liam啊……我知道,是的。这是一个硬限制吗?使用1线程:1内核似乎有点奇怪?您可以使用async/Wait更有效地使用内核,但这取决于您的处理是CPU还是IO绑定。使用1线程:1内核似乎有点奇怪如果代码被阻塞,那么它将不会释放内核来做任何其他事情。是的,这允许更多的工作人员进入内核“DoWork”功能并开始处理。早期基准测试显示总体处理时间明显缩短