Pet*_*eGO 6 c# async-await .net-4.5
我有一个这样的方法:
private async Task DoSomething()
{
// long running work here.
}
Run Code Online (Sandbox Code Playgroud)
当我调用这样的方法时,它会阻止 UI:
Task t = DoSomething();
Run Code Online (Sandbox Code Playgroud)
我必须执行以下操作之一才能使其非阻塞:
Task t = new Task(() => DoSomething());
t.Start();
// Or
Task t = Task.Factory.StartNew(() => DoSomething());
Run Code Online (Sandbox Code Playgroud)
Task.Wait()那么,当您可以像框架 4 中那样使用 Tasks 并代替时, async/await 的意义何在await?
编辑:我理解你所有的答案 - 但没有一个真正解决我的最后一段。谁能给我一个基于任务的多线程示例,其中异步/等待提高了程序的可读性和/或流程?
async方法同步开始执行。async对于编写异步操作很有用,但它不会神奇地使代码在另一个线程上运行,除非您告诉它。
您可以用来Task.Run将 CPU 密集型工作调度到线程池线程。
请参阅我的async/await介绍帖子或async常见问题解答以获取更多信息。
| 归档时间: |
|
| 查看次数: |
8480 次 |
| 最近记录: |