C#即发即弃任务并丢弃

问题描述 投票:1回答:1

我需要开火,并且忘记调用某些异步方法。我意识到VS建议我可以将调用设置为_discard,并且IDE警告会消失。但是我不确定与丢弃一起使用时是否仍未等待该调用。会吗?

 public async Task<object> SomeSideTaskToBeForgotten()
 {
     ...blah blah
 }

 public async Task MainTask()
 {
     ..some stuff
     _ = SomeSideTaskToBeForgotten(); //is this still fire and forget?
     ..some other stuff
 }
c# asynchronous async-await task c#-7.0
1个回答
4
投票

是,它仍然着火而忘记。

[SomeSideTaskToBeForgotten();返回Task时,方法的其余部分将执行,而无需等待Task完成。

[丢弃只是突出了一个事实,即进一步处理不需要Task

VS将推荐丢弃,因为SomeSideTaskToBeForgotten();返回某些内容,即不为空。

© www.soinside.com 2019 - 2024. All rights reserved.