【发布时间】:2022-01-25 12:19:48
【问题描述】:
我正在使用ActionBlock,我测试了它是否正常工作,如下所示,有时Actionblock 错过了操作,它根本不应该发生
为什么会发生这种情况,我该如何解决?
var n = 0;
var action = new Action<int>((i) =>
{
n++;
//...job...
}
for (int i = 0; i < size; i++)
{
var block = new ActionBlock<int>(i => action(i),
new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 6 });
n = 0;
foreach (var a in list)
block.Post(a);
block.Complete();
block.Completion.Wait();
if (n != list.Count)
ShowError(); //it's called sometimes
}
【问题讨论】:
标签: c# multithreading winforms tpl-dataflow