我概述了一个课程并且为了让自己高兴,我已经暂时返回了一个方法
public override Task DoPostProcessing()
{
return Task.Factory.StartNew(() => { ;} );
}
如果我打电话给这个方法而await
,那么“发生了什么”?这个Task
在编译时是否被优化掉了还是运行了?
答案 0 :(得分:3)
它运行。它将在一个刚刚立即返回的线程池上安排一个方法。
旁注,do not use StartNew
; it is dangerous。使用Task.Run
在线程池线程上运行代码,或者只使用Task.FromResult
返回已完成的任务。 Task.FromResult
应该是你实施noop的首选。