当等待空任务时方法“做”是什么?

时间:2016-06-06 13:50:09

标签: c# task-parallel-library

我概述了一个课程并且为了让自己高兴,我已经暂时返回了一个方法

public override Task DoPostProcessing()
{
    return Task.Factory.StartNew(() => { ;} );
}

如果我打电话给这个方法而await,那么“发生了什么”?这个Task在编译时是否被优化掉了还是运行了?

1 个答案:

答案 0 :(得分:3)

它运行。它将在一个刚刚立即返回的线程池上安排一个方法。

旁注,do not use StartNew; it is dangerous。使用Task.Run在线程池线程上运行代码,或者只使用Task.FromResult返回已完成的任务。 Task.FromResult应该是你实施noop的首选。