C#触发并忘记任务并丢弃

时间:2019-11-26 09:52:36

标签: c# asynchronous async-await task 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
 }

1 个答案:

答案 0 :(得分:5)

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

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

舍弃只是突出了以下事实:不需要进行任何进一步处理的Task

VS将建议您放弃,因为SomeSideTaskToBeForgotten();返回的内容不是无效的。