要取消Parallel.ForEach中的操作,可以使用CancellationTokenSource来取消操作。首先创建一个CancellationTokenSource对象,然后将其Token属性传递给ParallelOptions对象的CancellationToken属性,最后在需要取消操作的地方调用CancellationTokenSource的Cancel方法。
示例代码如下:
CancellationTokenSource cts = new CancellationTokenSource();
ParallelOptions options = new ParallelOptions
{
CancellationToken = cts.Token
};
try
{
Parallel.ForEach(collection, options, item =>
{
// 进行操作
// 如果需要取消操作,可以在这里检查Cancellation Token
options.CancellationToken.ThrowIfCancellationRequested();
});
}
catch (OperationCanceledException)
{
// 操作被取消
}
// 在需要取消操作的地方调用Cancel方法
cts.Cancel();
这样就可以在需要的时候取消Parallel.ForEach中的操作。