有效的非阻塞执行

时间:2015-02-14 15:54:40

标签: c# azure asynchronous cloud async-await

我实现了一个在云上运行的服务。我有一个方法fastExcute(),它可以非常快速地进行一些计算。 我需要向方法中添加一个调用IndependentBackgroundMethodAsync()到其他可以在后台执行的方法,它在完成它的工作时并不重要,但它应该完成!最重要的是它将最终完成其工作 所以我想这样做:

fastExecute()
{
Task task = IndependentBackgroundMethodAsync();
//fast code
await t; < - could cause fastExecute not to be fast
}

另一方面,使代码成为:

fastExecute()
    {
    Task task = IndependentBackgroundMethodAsync();
    //fast code
    }

不承诺最终会执行IndependentBackgroundMethodAsync并完成其工作

做我需要的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

如果您想异步执行IndependentBackgroundMethodAsync,并且关心我将使用ContinueWith的结果(请参阅MSDN continuewith) 任务完成后,将执行继续任务。

 fastExecute()
{
Task task = IndependentBackgroundMethodAsync();

task.ContinueWith(result => // handle result); 

 //fast code

}