C# Fire and Forget 任务并丢弃

标签 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
 }

最佳答案

是的,它仍然是一劳永逸。

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

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

VS 建议丢弃,因为 SomeSideTaskToBeForgotten(); 返回一些东西,即不是 void,但添加丢弃也会抑制警告,因为它通知编译器 await 没有被意外遗漏。

关于C# Fire and Forget 任务并丢弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59048102/

相关文章:

c# - Azure 网站上出现 "Task was canceled"错误

angular - 如何在 RxJS 中使用 await

javascript - 为什么 Array.prototype.forEach() 不能像 for 循环一样识别异步函数中的等待?

c# - "The remote server returned an error: (417) Expectation Failed."

c# - 添加方法后有关静态局部函数的错误

c# - 使用证书运行 WCF 服务时失败

javascript - 如何仅在 "map"循环完成时设置状态?

c# - 当 ThreadPool 中的事件线程数大于 ThreadPool.GetMinThreads() 时启动任务

android - Retrofit 2.0 转换器返回 NULL

javascript - 等待分配给变量的 promise