非同步無效
你可以使用 void
(而不是 Task
)作為非同步方法的返回型別。這將導致即發即忘動作:
public void DoStuff()
{
FireAndForgetAsync();
}
private async void FireAndForgetAsync()
{
await Task.Delay(1000);
throw new Exception(); //will be swallowed
}
當你迴歸 void
時,你不能發現這一點。你將無法知道方法何時完成,並且吞下了 async void
方法中引發的任何異常。