How to cancel parallel loops in .NET C# z

时间:2014-05-22 16:43:14   收藏:0   阅读:332
bubuko.com,布布扣
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!");
}
bubuko.com,布布扣

 

How to cancel parallel loops in .NET C# z,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!