让我们考虑一下方法:
Task Foo(IEnumerable items, CancellationToken token)
{
return Task.Run(() =>
{
foreach (var i in items)
token.ThrowIfCancellationRequested();
}, token);
}
然后我有一个消费者:
var cts = new CancellationTokenSource();
var task = Foo(Items, cts.token);
task.Wait();
和项目的例子:
IEnumerable Items
{
get
{
yield return 0;
Task.Delay(Timeout.InfiniteTimeSpan).Wait();
yield return 1;
}
}
任务呢。等等? 我无法将取消令牌放入项目集合中。
如何杀死没有响应的任务或解决这个问题?