溫馨提示×

如何取消parallel.foreach中的操作

小樊
94
2024-07-01 16:12:42
欄目: 編程語言

要取消Parallel.ForEach中的操作,可以使用CancellationTokenSource來取消操作。首先創(chuàng)建一個CancellationTokenSource對象,然后將其Token屬性傳遞給ParallelOptions對象的CancellationToken屬性,最后在需要取消操作的地方調(diào)用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)
{
    // 操作被取消
}

// 在需要取消操作的地方調(diào)用Cancel方法
cts.Cancel();

這樣就可以在需要的時候取消Parallel.ForEach中的操作。

0