C# 异步等待任务<;T>;没有异步/等待
我希望在执行其他操作之前完成我的C# 异步等待任务<;T>;没有异步/等待,c#,asynchronous,task-parallel-library,C#,Asynchronous,Task Parallel Library,我希望在执行其他操作之前完成我的任务。如果我使用 Task.WaitAll(task); 它肯定会阻塞我的UI线程。在不使用async/await(我使用的是.NET v4.0)的情况下,异步等待任务完成的最佳方法是什么?在将Microsoft.Bcl.async NuGet包添加到项目中时,您也可以在.NET 4.0中使用async/await。除此之外,您没有太多的选择——要么使用异步调用,要么使用前面提到的方法阻塞线程 但是,在使用异步方法时,您不必等待。您还可以使用回调: task.C
任务
。如果我使用
Task.WaitAll(task);
它肯定会阻塞我的UI线程。在不使用
async/await
(我使用的是.NET v4.0)的情况下,异步等待任务完成的最佳方法是什么?在将Microsoft.Bcl.async NuGet包添加到项目中时,您也可以在.NET 4.0中使用async/await
。除此之外,您没有太多的选择——要么使用异步调用,要么使用前面提到的方法阻塞线程
但是,在使用异步方法时,您不必等待。您还可以使用回调:
task.ContinueWith(r => {
/* code */
});
异步等待的概念正在伤害我的大脑……为什么不同步运行它呢?你只能编写continuations(ContinueWith
)。也就是说,您可以使用async&Wait和target.NET4。但是,您必须使用VS2012。如果要等待异步调用完成,那么进行异步调用有什么意义呢。这就像走一条1车道的路,把它分成8车道,然后回到1车道。嗯,如果你的意思是“当某个任务完成时,我如何调用一个方法”,那么@user2834880的答案是正确的。如果Microsoft.Bcl.Async
不是一个选项,然后是Task.Factory.continuewhall
是Task.WaitAll
的好替代品。