c# – Task.Wait方法(CancellationToken)

前端之家收集整理的这篇文章主要介绍了c# – Task.Wait方法(CancellationToken)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释一下Task.Wait(CancellationToken)重载的用法吗? MSDN确实说了很多……

这就是我通常处理任务取消的方式:

var source = new CancellationTokenSource();
        var task = Task.Factory.StartNew(() => 
        {
            while (true)
            {
                source.Token.ThrowIfCancellationRequested();
            }
        },source.Token);

        try
        {
            task.Wait();
        }
        catch (AggregateException exc)
        {
            exc.Flatten().Handle(e => e is OperationCanceledException);
        }

那么什么时候将令牌传递给Wait方法有用呢?

解决方法

考虑你想要取消等待任务的情况,而不是实际取消任务本身…因为任务本身不处理取消,或者因为你真的想继续执行任务,但是(比如说)回应用户“这需要一段时间……但它仍在进行中.关闭浏览器是安全的.” (管他呢.)

猜你在找的C#相关文章