如何取消第三方任务

本文关键字:第三方 任务 取消 何取消 | 更新日期: 2023-09-27 18:29:40

我有一个第三方任务在以下代码中运行:

var ts = new CancellationTokenSource();
var ct = ts.Token;
var node = Task<IResponseAdapter>.Factory.StartNew(() =>
{
    return NewRequest(n.RequestClass, n.MinCommission, n.MaxCommission).Submit();
}, ct);

正如您所看到的,方法调用是任务中唯一的东西,而进入任务的全部原因是,如果超时,我可以取消它。许多第三方方法是按顺序运行的,因此监控行为不端/未响应的作业并终止它们以运行下一个作业非常重要。

在我代码的其他地方,我有

var completed = task.Wait(timeoutValue);
if(!completed) tokensource.Cancel();

然而,我相信这实际上并没有取消任务,只是提供了一种访问它的方法

那么,我如何才能阻止第三方Web服务方法的运行呢?

如何取消第三方任务

您当然不能停止已经在另一台计算机上运行的方法(通过Web服务)。任务的取消令牌只能在设置该令牌时停止任务的启动。一旦任务开始,就没有回头路了,因为Thread.Abort(几乎)永远不应该被使用。