我一個有一個第三方的任務在下面的代碼運行:如何取消第三方任務?
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方法運行?
[*我如何取消不可取消的異步操作?](http://blogs.msdn.com/b/pfxteam/archive/2012/10/05/how-do-i-cancel-non- cancelable-async-operations.aspx)應該回答你的問題。 (破壞者:你不能) – svick
有沒有其他的方式來處理這個問題,比如線程加入和中止? – dotnetnoob
線程連接並不取消任何內容。線程中止是非常危險的,真的不應該使用。 – svick