是否有取消Async System.Threading.Tasks.Task的方法?即在異步任務中使用取消
Task.Factory.FromAsync(
client.BeginCallWebService,
client.EndCallWebService,
"param1",
null);
我想這個任務註冊一個共享的CancellationToken,這樣如果調用此異步任務之前令牌被取消,也不會被調用。
感謝
是否有取消Async System.Threading.Tasks.Task的方法?即在異步任務中使用取消
Task.Factory.FromAsync(
client.BeginCallWebService,
client.EndCallWebService,
"param1",
null);
我想這個任務註冊一個共享的CancellationToken,這樣如果調用此異步任務之前令牌被取消,也不會被調用。
感謝
因此,擁有多放一些想進入這個我想取消一個異步任務是沒有意義的開始部分將被調用「內聯」是,是馬上調用線程上。
因此,沒有必要以這種方式支持取消。
如果你想真正放棄處理呼叫(例如一個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
保重, 馬丁
我回滾問題的原始版本。最近的編輯偏離了OP的原意,與他們接受的答案不相符。 – Douglas 2014-07-27 12:36:11