gpt4 book ai didi

c# - 当第一个异步方法返回 true 时返回 true

转载 作者:太空狗 更新时间:2023-10-29 21:12:51 26 4
gpt4 key购买 nike

假设我有以下代码

public async Task<bool> PingAddress(string ipAddress)
{
return await DoSomeThing(10) || await DoSomeThing(11) || await DoSomeThing(12);

}

private async Task<bool> DoSomeThing(int input)
{
//Do some thing and return true or false.
}

我将如何转换 return await DoSomeThing(10) ||等待 DoSomeThing(11) || await DoSomeThing(12); 并行运行并在第一次返回 true 时返回 true,如果全部返回 false 则返回 false!

最佳答案

这是对任务集合的异步“Any”操作。

public static async Task<bool> LogicalAny(this IEnumerable<Task<bool>> tasks)
{
var remainingTasks = new HashSet<Task<bool>>(tasks);
while (remainingTasks.Any())
{
var next = await Task.WhenAny(remainingTasks);
if (next.Result)
return true;
remainingTasks.Remove(next);
}
return false;
}

关于c# - 当第一个异步方法返回 true 时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169593/

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