C#-如何在等待超时后取消任务?

时间:2019-06-28 00:24:15

标签: c# .net task

我正在处理一些专有代码,并且尝试取消某个任务(如果60秒后未成功完成)。基本上,我有两个对象,可以实例化的是Object1和Object2,它们的.Run()方法由两个单独的任务调用。我希望对象2如果在对象1保持运行的60秒后仍未完成,则取消它。我尝试使用.Dispose(),但意识到仅释放资源而实际上并未取消任务。

animateChild()

1 个答案:

答案 0 :(得分:0)

请改用Task.Run()。 Run()方法有几个重载。根据您的o2.Run()返回的内容,以下是其中一些:

  • @FXML
  • Run(Action, CancellationToken)
  • Run(Func<Task>, CancellationToken)

基本上,您在这里看到的是Run<TResult>(Func<TResult>, CancellationToken)CancellationToken具有以下构造函数:CancellationTokenSource,其中CancellationTokenSource(TimeSpan delay)

  

取消此时间之前要等待的时间间隔   CancellationTokenSource。

可通过此link

找到更多信息

这是完整的解决方案:

delay