异步返回任务方法

-1 .net c# async-await

我的方法是这样的:

public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer)
{
    string value = Encoding.ASCII.GetString(buffer, 0, result.Count);

    var message = Message.Create(value);

    if (message is CallMessage callMessage)
    {
        await OnCall(socket, callMessage);
    }

    await Task.CompletedTask; // ??? -> Does it require here?
}
Run Code Online (Sandbox Code Playgroud)

如果代码没有进入if块,是否需要写await Task.CompletedTask在方法的最后?

Ste*_*ary 7

你不可以。

await Task.CompletedTask 什么都不做。

  • @MichaelRandall:好点。这是一种什么都不做的“低效方式”。:) (3认同)
  • “*什么都不做*” - 嗯,除了生成更多 *CIL* 我猜 (2认同)