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

咨询Task.WhenAny在多任务提前完成时的返回值规则

Task.WhenAny 多任务已完成时的返回规则
  • Task.WhenAny的返回值是单个Task对象,绝不会返回已完成任务的列表。
  • 当执行await Task.WhenAny(task1,task2,task3)前已有多个任务完成时,方法会按照传入参数的顺序,返回第一个被检测到已完成的任务,这是确定的行为,不存在随机性。
  • 核心逻辑:调用WhenAny时,会按参数列表的顺序逐个检查任务状态,第一个处于完成状态的任务会被立即返回,与任务实际完成的时间先后无关。

举个实例:
假设task2实际完成时间早于task1,但调用WhenAny时传入的顺序是task1, task2, task3,此时因为task1已完成,方法会直接返回task1,而非更早完成的task2;如果传入顺序是task2, task1, task3,则会返回task2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:45:01