我需要着火并忘记调用某些异步方法。我意识到 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/