【发布时间】:2020-02-12 03:09:52
【问题描述】:
我的方法是这样的:
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?
}
如果代码没有进入if块,是否需要在方法末尾写await Task.CompletedTask?
【问题讨论】:
-
不,最后的
await Task.CompletedTask不是必需的,因为返回类型实际上是void。 -
当方法被标记为异步时,编译器会为你返回任务
标签: c# .net async-await