[英]Using Cancellation with Async Tasks
有沒有辦法取消Async System.Threading.Tasks.Task? 即
Task.Factory.FromAsync(
client.BeginCallWebService,
client.EndCallWebService,
"param1",
null);
我想在此任務中注冊一個共享的CancellationToken,這樣如果在調用此異步任務之前取消該令牌,則不會調用它。
謝謝
所以,考慮到更多的想法,我認為取消Async任務是沒有意義的,因為Begin部分將被調用'inline',就在調用線程上。
因此,無需以這種方式支持取消。
如果您想要實際中止處理調用(例如,到Web服務或使用Web客戶端),您可以實現TaskCompletionSource方法,而不是在此處記錄: http : //msdn.microsoft.com/en-us/library/ee622454.aspx
很抱歉回答我自己的問題,我猜這有點不禁。
我不同意取消異步任務毫無意義的觀點。
你是對的,它通常會立即調用(並返回一個熱門任務),但情況並非總是如此,例如當你使用一個使用OrderedTaskScheduler的TaskFactory時(一個類一個接一個地執行一個任務)。 OrderedTaskScheduler包含在http://archive.msdn.microsoft.com/ParExtSamples/Release/ProjectReleases.aspx?ReleaseId=4179中
小心,馬丁
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.