我有这段代码来启动一个 Parallel ForEach 循环:
Parallel.ForEach<ListViewItem>(filesListView.Items.Cast<ListViewItem>(), new ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount }, item => {
if (CallToStop == true)
{
//Code here to stop the loop!
}
internalProcessStart(item);
});
我有一些代码会检查是否有停止线程的调用,然后我想中断;
代码,但这不适用于并行。
我找到了相同的 question by someone else ,但他们的代码与我的略有不同,我不确定将 ParallelLoopState state
放在哪里。
谢谢!
最佳答案
改写如下
Parallel.ForEach<ListViewItem>(filesListView.Items.Cast<ListViewItem>(),
new ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount },
(item, state) => {
if (CallToStop == true)
{
state.Break();
}
internalProcessStart(item);
});
希望这对您有所帮助。
关于c# - 如何停止 Parallel.ForEach 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777560/