有一个功能
async Task Run(Func<Task> f)
{
// do something
//
await f();
}
有时我需要调用该函数,但参数f
并没有任何内容,因此我将其传递给async () => { }
。有noop功能吗?
await Run(async () => { }); // I still need to call Run
答案 0 :(得分:1)
您正在寻找的noop是Task.CompletedTask。
获取已成功完成的任务。
但是,由于该方法需要Func<T>
而不是Task作为参数,因此您仍然需要传递lambda。
await Run(() => Task.CompletedTask);
这可能与您建议的使用空块没什么不同。