我想达到什么目的?
我试图使用CancellationToken从另一个任务中取消一个长期运行的任务。我不可能处理取消并提交长期运行的任务,因为它将永远不会触及处理取消的代码(任务处理一个错误的正则表达式,无论如何,这并不重要)。我试图从另一个任务中处理取消请求,并对取消请求进行轮询,当我调用ThrowIfCancellationRequested()时,它实际上会抛出该线程。因此,长期运行的任务仍然存在和悬念。
我是如何解决这个问题的
好吧,在长时间运行的任务的线程上,我没有使用令牌的ThrowIfCancellationRequested(),而是随意地调用Abort(),它的工作原理就像魅力一样。
和我的问题是:,我很确定它不是很优雅,我想知道它是否还好,我在那里做了什么,我如何处理这种情况?
发布于 2016-02-26 14:50:14
is evil,因为它非常危险。.NET中的取消(以及我所知道的任何其他平台)都是协作的。要么让操作按要求自行取消,要么隔离它,这样您就可以忽略它。
https://stackoverflow.com/questions/35652706
复制相似问题