最初,我认为这应该是简单的,当然,有一种简单的方法可以实现这一目标。现在我不再那么肯定了。这就是我想要做的。
我正在将一个冗长的下载任务卸载到我传递Parallel.Foreach
的{{1}}循环。如果用户单击“取消”按钮,则调用令牌的CancellationToken
方法,并且循环终止。
我希望用户能够根据需要随时取消和重新启动循环,但我不知道如何执行此操作,因为您只能使用CancellationTokenSource.Cancel
一次。我必须将它声明为全局变量,以便它在Cancel-button事件处理程序以及从CancellationTokenSource
循环开始的代码中可见。
这是代码(缩写为要点):
Parallel.Foreach
这样做的正确方法是什么?