How to cancel parallel loops in .NET C# z
时间:2014-05-22 16:43:14
收藏:0
阅读:332
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); Task.Factory.StartNew(() => { Thread.Sleep(5000); cancellationTokenSource.Cancel(); Console.WriteLine("Token cancelled"); }); ParallelOptions parallelLoopOptions = new ParallelOptions() { CancellationToken = cancellationTokenSource.Token }; try { Parallel.For(0, Int64.MaxValue, parallelLoopOptions, index => { double result = Math.Pow(index, 3); Console.WriteLine("Index {0}, result {1}", index, result); Thread.Sleep(100); }); } catch (OperationCanceledException) { Console.WriteLine("Cancellation exception caught!"); }
评论(0)