C# 在之后没有更多操作的情况下等待任务有意义吗?
假设我们有一个方法:C# 在之后没有更多操作的情况下等待任务有意义吗?,c#,async-await,C#,Async Await,假设我们有一个方法: public async Task FlushBuffer(List<UmtsCellKpiReceived> kpis) { await _umtsCellService.ProcessUmtsCellKpi(kpis).ConfigureAwait(false); } 公共异步任务刷新缓冲区(列出KPI) { wait _umtsCellService.ProcessUmtsCellKpi(KPI).configurewait(false); }
public async Task FlushBuffer(List<UmtsCellKpiReceived> kpis)
{
await _umtsCellService.ProcessUmtsCellKpi(kpis).ConfigureAwait(false);
}
公共异步任务刷新缓冲区(列出KPI)
{
wait _umtsCellService.ProcessUmtsCellKpi(KPI).configurewait(false);
}
在这里等待这项任务有意义吗?在最近的一次讨论中,我了解到,如果MyTask()
抛出,不等待将创建一个孤立的任务,这可能会导致unobservedtaskeexception
这是等待一切的正当理由吗?在您的情况下,仅使用一行方法,就可以返回任务本身,不需要异步/等待。调用代码可以等待
任务
本身,如果这样做有意义的话。只要您直接返回任务,则不会。使用wait
的唯一原因是您想对结果做些什么。如果您不只是将任务返回给调用者。@PanagiotisKanavos是对的。我没有正确阅读您的代码。@Cemre,请转到此链接,您将看到关于此主题异常处理任务的答案。希望这有帮助!!!那么在这种情况下,该方法是否需要标记为async
?我不这么认为,因为async
关键字的目的本质上是允许使用wait
关键字。你是对的。您不会将该方法标记为async,事实上,没有任何WAIT语句的async方法将生成警告。