sap*_*ito 3 .net c# task-parallel-library async-await
为什么可以在C#中执行此操作?
var task = Task.Run (...);
await task;
Run Code Online (Sandbox Code Playgroud)
是不是Task.Run()应该用于CPU绑定代码?要求await这个有意义吗?
即,在调用后Task.Run我明白该任务正在线程池的另一个线程中运行.打电话的目的是await什么?打电话不会更有意义task.Wait()吗?
最后一个问题,我的第一印象await是打算专门用于async方法.将它用于返回的任务是否常见Task.Run()?
编辑.这也让我想知道,为什么我们有Task.Wait ()而不是Task.Await().我的意思是,为什么一个方法被用于Wait()和一个keyworkd await.在两种情况下使用方法都不会更一致吗?
使用中没有任何意义Wait.没有必要启动一个新的线程来做工作,如果你只是要让另一个线程坐在那里,什么都不做等待.这两者唯一明智的选择就是await它.等待任务是完全合理的,因为它允许原始线程继续执行.
await任何类型Task(在正确的背景下)都是明智的,无论它来自哪里.async等待的方法没有什么特别之处.事实上,在每个异步程序中都需要有不使用async关键字的异步方法; 如果每个人都await在等待一种async方法,那么你将无处可去.