小编Jay*_*ter的帖子

C#多个BackgroundWorkers

我正在尝试设置多个BackgroundWorkers来做工作,当不忙时开始做下一部分工作.我似乎无法让他们正常工作.我有以下代码.

当我设置FilesToProcess等于或小于MaxThreads它完美的工作,但如果我把它更高,应用程序冻结.

我确信它很简单,但我看不到它.

using System;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;

namespace bgwtest
{
    public partial class Form1 : Form
    {
        private const int MaxThreads = 20;
        private const int FilesToProcess = 21;
        private BackgroundWorker[] threadArray = new BackgroundWorker[MaxThreads];

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1Load(object sender, EventArgs e)
        {
            InitializeBackgoundWorkers();
        }

        private void InitializeBackgoundWorkers()
        {
            for (var f = 0; f < MaxThreads; f++)
            {
                threadArray[f] = new BackgroundWorker();
                threadArray[f].DoWork += new …
Run Code Online (Sandbox Code Playgroud)

c# backgroundworker

9
推荐指数
1
解决办法
2万
查看次数

C#Parallel.For

无论如何都要增加一个Parallel.For一旦启动就会做的循环次数?示例如下:

var start = 0;
var end = 5;
Parallel.For(start, end, i =>
{
    Console.WriteLine(i);
    end = 10;
});
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

松鸦

c# parallel-for

1
推荐指数
1
解决办法
3210
查看次数

标签 统计

c# ×2

backgroundworker ×1

parallel-for ×1