异步方法结束时的 Return 与 Await:综合分析
返回 Task 的异步方法结束时,开发人员面临两难境地:他们应该返回任务还是使用await 运算符?为了做出明智的决定,让我们探讨每种方法的后果。
返回任务
直接返回任务时,该方法使自己负责任务的继续异步操作。如果该方法未标记为异步,则此方法有效。但是,方法的同步部分中引发的异常将同步传递,可能会破坏自然的异步流程。
此选项通常首选用于以下方法:
示例:
Task FooAsync() { return BazAsync(); // Option A }
等待任务
相反,等待异步方法中的任务将异步操作的继续委托给调用者。这种方法可确保异步处理所有异常,从而保留预期的控制流。
示例:
async Task BarAsync() { await BazAsync(); // Option B }
注意事项
总之,适当的方法取决于方法的具体要求和异步操作的预期行为。权衡上述后果,为您的代码做出最佳决定。
以上是在异步方法结束时返回任务或等待:哪种方法最好?的详细内容。更多信息请关注PHP中文网其他相关文章!