Noc for Func <任务>?

时间:2019-03-20 22:29:58

标签: c#

有一个功能

async Task Run(Func<Task> f)
{
    // do something
    //
    await f();
}

有时我需要调用该函数,但参数f并没有任何内容,因此我将其传递给async () => { }。有noop功能吗?

await Run(async () => { }); // I still need to call Run

1 个答案:

答案 0 :(得分:1)

您正在寻找的noop是Task.CompletedTask

  

获取已成功完成的任务。

但是,由于该方法需要Func<T>而不是Task作为参数,因此您仍然需要传递lambda。

await Run(() => Task.CompletedTask);

这可能与您建议的使用空块没什么不同。