【发布时间】:2018-05-19 02:07:22
【问题描述】:
此方法被标记为异步但返回 void。它实际上是异步的并且不是基于任务的吗?如果是这样,它是如何异步的?
【问题讨论】:
-
因为它会在 TBA 成为运行时的一部分之前构思和实施
-
不包括反对票,尽管我确实犯了一个明显的错字
-
不确定他们为什么选择 async void,但这里的这篇文章很好地解释了 async void:stackoverflow.com/questions/41685636/…
-
你当然可以使用
client.SendMailAsync():) -
@mariocatch
SendAsync不是async void;它是一个pre-async/await,基于事件的异步方法。 OTOH,SendMailAsync适当地返回Task,因为它是围绕 TPL 设计的
标签: c# asynchronous async-await task task-parallel-library