gpt4 book ai didi

c# - 异步 Task.WhenAll 超时

转载 作者:IT王子 更新时间:2023-10-29 03:47:20 31 4
gpt4 key购买 nike

在新的异步 dotnet 4.5 库中有没有办法在 Task.WhenAll 上设置超时?方法?我想获取多个源,并在 5 秒后停止,并跳过未完成的源。

最佳答案

您可以使用 Task.WhenAny() 将生成的 TaskTask.Delay() 结合起来:

await Task.WhenAny(Task.WhenAll(tasks), Task.Delay(timeout));

如果您想在超时的情况下收获已完成的任务:

var completedResults =
tasks
.Where(t => t.Status == TaskStatus.RanToCompletion)
.Select(t => t.Result)
.ToList();

关于c# - 异步 Task.WhenAll 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846615/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com