我有一个第三方任务在以下代码中运行:
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();
但是,我相信这实际上并没有取消任务,而只是提供了一种访问它的方法。
那么如何阻止第三方 webservice 方法运行呢?