C# Fire and Forget 任务并丢弃

Mic*_*yne 10 c# asynchronous task async-await c#-7.0

我需要生火并忘记调用一些异步方法。我意识到 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
 }
Run Code Online (Sandbox Code Playgroud)

Joh*_*lay 12

是的,它仍然是火和忘记。

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

丢弃只是明确表明Task不需要任何进一步处理的事实。

VS 将推荐丢弃,因为SomeSideTaskToBeForgotten();返回的东西不是无效的。