【问题标题】:Run a task in background and continue execution在后台运行任务并继续执行
【发布时间】:2013-07-10 20:33:26
【问题描述】:

我有一个长时间运行的库方法(第 3 方),它返回一个 System.Threading.Tasks.Task。如何告诉它在后台运行并继续执行我的代码?我还想在成功完成或出现异常后获得回调。

【问题讨论】:

  • 你是说方法在当前线程上运行,然后返回一个完成的Task?那会很奇怪。

标签: .net task-parallel-library


【解决方案1】:

如果它返回一个Task,那么它几乎肯定确实在后台运行。 Task 的一个实例代表异步运行的某些东西的完成状态;这就是 Task 类的用途。

Task 让您有机会请求回电。只需致电.ContinueWith(your callback)

ContinueWith 有几个重载,可让您根据需要指定选项,例如“仅在任务成功完成时调用我的回调”或“仅在任务因异常而失败时调用我的回调”。

【讨论】: