有人可以向我解释一下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方法有用呢?