被取消令牌取消后重新启动任务

时间:2018-02-09 09:54:42

标签: .net vb.net parallel.foreach cancellationtokensource cancellation-token

最初,我认为这应该是简单的,当然,有一种简单的方法可以实现这一目标。现在我不再那么肯定了。这就是我想要做的。

我正在将一个冗长的下载任务卸载到我传递Parallel.Foreach的{​​{1}}循环。如果用户单击“取消”按钮,则调用令牌的CancellationToken方法,并且循环终止。

我希望用户能够根据需要随时取消和重新启动循环,但我不知道如何执行此操作,因为您只能使用CancellationTokenSource.Cancel一次。我必须将它声明为全局变量,以便它在Cancel-button事件处理程序以及从CancellationTokenSource循环开始的代码中可见。

这是代码(缩写为要点):

Parallel.Foreach

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

仅为后代,以下是Hanscomment上面提出的答案:

我只是添加了一行

cTokenSource = New CancellationTokenSource

InitialiseTiles()之后就可以了。