[英]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.