C#在Parallel.ForEach循环中更新进度条

时间:2018-03-03 22:16:28

标签: c# loops foreach parallel-processing

我正在尝试在Parallel.ForEach中更新我的进度条,但没有任何成功。 进度条总是在80-90左右,并与整个过程一起冻结。 我做错了什么?是否因为UI线程忙于进度条而导致问题? 我会赞美你给我的任何建议。

这是我的代码:

 Parallel.ForEach(test_Words, entry =>
        {
           Form1.fr.Invoke((Action)delegate { Form1.fr.progressBar1.Value++; });
           switch (test_Type)
           { 
               case "Definitions":
                   bagOfExercises.Add(Read(Definitions.get(entry.Value, entry.Key)));
                   break;
               case "Examples":
                   bagOfExercises.Add(Read(Examples.get(entry.Value, entry.Key)).Replace(entry.Key, new string('_', entry.Key.Length)));
                   break;
           }
        });

0 个答案:

没有答案