【发布时间】:2015-03-20 13:15:20
【问题描述】:
我正在使用Parallel.ForEach 来实现并行性,我想知道一旦任何一个请求完成,我有什么方法可以停止Parallel.ForEach 的执行。例如考虑以下代码:
IEnumerable<string> myList = new List<string>() { "admin", "admin2", "admin3" };
CancellationTokenSource _tokenSource = new CancellationTokenSource();
Parallel.ForEach(myList,
admin_name =>
{
Console.WriteLine(admin_name);
});
上面的代码打印admin,admin2和admin3。如果打印了任何管理员名称,我想停止进一步执行。
这可以实现吗?或者有什么解决办法吗?
我愿意接受建议和改进。
【问题讨论】:
-
使用
ParallelLoopState更容易(另一个ForEach重载具有action的第二个参数)。
标签: c# .net foreach parallel-processing parallel.foreach