You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在Azure中使用await后仍需调用WaitForCompletionAsync?

为什么Azure SDK中要先await func()再调用WaitForCompletionAsync()?

这是Azure SDK针对长时间运行操作的设计逻辑,两步await的作用完全不同:

  • 第一步await func():只是等待请求被Azure服务成功接收并启动,返回的res是一个操作状态跟踪对象,而非最终结果。这时候实际的业务操作(比如部署虚拟机、创建存储账户)还在Azure后台异步执行,并没有完成。
  • 第二步await res.WaitForCompletionAsync():会持续轮询Azure服务的操作状态,直到这个长时间运行的操作真正完成(成功或失败)。只有这一步完成后,你才能拿到操作的最终结果,或者捕获到执行过程中出现的错误。

举个实际场景:比如调用Azure资源管理器的VirtualMachines.StartAsync()启动一台虚拟机,await StartAsync()只是确认Azure已经收到启动指令并开始处理,返回的操作对象里只会包含操作ID、当前状态(比如"Starting")等元数据;而WaitForCompletionAsync()会一直等待,直到虚拟机完全启动完成,状态变为"Running",这时候你才能进行后续的操作(比如远程连接)。

内容的提问来源于stack exchange,提问作者CodeMonkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 06:42:03