C# 什么是方法;“做”;当它等待一个空任务时?

C# 什么是方法;“做”;当它等待一个空任务时?,c#,task-parallel-library,C#,Task Parallel Library,我概述了一个类,为了让自己高兴,我临时返回了一个方法 public override Task DoPostProcessing() { return Task.Factory.StartNew(() => { ;} ); } 如果我调用这个方法并等待它,会发生什么?这是在编译时优化的任务还是运行的任务?正在运行。它将在线程池上调度一个方法,该线程池将立即返回 在旁注上。使用Task.Run在线程池线程上运行代码,或者只使用Task.FromResult返回已完成的任务任务。对于

我概述了一个类,为了让自己高兴,我临时返回了一个方法

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

如果我调用这个方法并等待它,会发生什么?这是在编译时优化的任务还是运行的任务?

正在运行。它将在线程池上调度一个方法,该线程池将立即返回


在旁注上。使用
Task.Run
在线程池线程上运行代码,或者只使用
Task.FromResult
返回已完成的任务<代码>任务。对于noop实现,FromResult应该是您的选择。

创建等待器状态机时,有一条短路路径询问函数是否已运行,如果已运行,它将返回。根据我的记忆,返回
任务
,应该只使用
异步
等待
是不好的做法。我知道
开始新的
,有时我还是习惯性地使用它:(.谢谢你的回答,这很有意义!