温馨提示×

如何取消parallel.foreach中的操作

小樊
82
2024-07-01 16:12:42
栏目: 编程语言

要取消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中的操作。

0