当TaskFactory.ContinueWhenAny(Task [],Action(Task))被调用时,剩下的任务会发生什么?剩下的任务是否会被取消或者在特定的任务完成后会在后台运行?如果他们在后台运行,我们如何取消他们?当ContinueWhenAny被调用时,剩下的任务会发生什么?
2
A
回答
3
其余任务正常运行。当第一个Task
完成时触发此延续。
取消余下的任务是这样的:
var tknSource = new CancellationTokenSource();
List<Task> tasks = new List<Task>();
for(int i = 0; i < 50; i++)
{
tasks.Add(Task.Run(DoWork(tknSource.Token))); //pass the token to the tasks
}
TaskFactory.ContinueWhenAny(tasks.ToArray(), p => tknSource.Cancel()); //requests a cenllation on tasks that are still running
请注意,您只能要求取消。 DoWork
必须在令牌更改状态时观察并采取行动。
Check out the MSDN article on Task Cancellation for more details
+0
我们如何取消剩余的任务? – user3233361
+0
@ user3233361请参阅我的编辑。 – Gusdor
相关问题
- 1. 当PowerManager.goToSleep被调用时,Android服务会发生什么?
- 2. 当一个进程/任务被终止时会发生什么
- 3. 当alloc或allocWithZone被调用时会发生什么?
- 4. 当popToRootViewController被调用时会发生什么?
- 5. 当condition_variable :: wait()被调用时,解锁unique_lock会发生什么?
- 6. 当onPause被调用时数据会发生什么活动
- 7. 当FlurryWP8SDK.Api.EndTimedEvent未被调用时会发生什么?
- 8. 如果/当DllImport被多次调用时会发生什么?
- 9. 取消任务时会发生什么?
- 10. 当调用ajax调用时会发生什么?
- 11. 当Qt应用程序的quit()方法被调用时,QDialogs会发生什么?
- 12. 当一个奇数宽度的div被拆分为50%/ 50%时剩下的1px会发生什么?
- 13. 当一个事件从一个任务中被触发时会发生什么?它会有单独的线程?
- 14. 使用Task.Factory.StartNew时完成的任务会发生什么
- 15. 当Android应用程序“被杀”时会发生什么
- 16. 当应用程序被删除时PendingIntents会发生什么?
- 17. 当Azure Logic App被禁用时会发生什么?
- 18. 调用setCancelsTouchesInView时会发生什么?
- 19. 在WPF/Prism中,当DelegateCommand.RaiseCanExecuteChanged被触发时,CompositeCommand会发生什么?
- 20. 当我们任意使用==时会发生什么?
- 21. 当你调用新的Object()时会发生什么?
- 22. 当你调用UItableview的重装两次时会发生什么
- 23. C++ boost:asio当会话类被删除时服务器类会发生什么
- 24. 当我调用UnitySendMessage并且游戏对象被销毁时会发生什么?
- 25. 当perform_async被调用但sidekiq没有运行时会发生什么?
- 26. 当一个属性没有被alloc + init'ed调用setter/getter时会发生什么?
- 27. 当包含lambda的类型被分配时会发生什么?
- 28. 当APNS中的通知被“丢弃”时会发生什么?
- 29. 当它被克隆时,关闭的delagate会发生什么?
- 30. 当我使用PHP :: SOAP调用Web服务方法时会发生什么?
甚至无法取消一般的“任务”。只有它合作。 – usr