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