SD>Запускаешь 3 функции в параллель, которая первой ответила — тот результат и возвращаем.
На C# для такой задачи ПМ только усложнять задачу. Вот полная консольная программа. Выведет: Finished in 100 ms.
static async Task<string> Para1(int delay)
{
await Task.Delay(delay);
return $"Finished in {delay} ms";
}
//в этой одной строке - 3 запустятся в параллель, результатом будет та, которая первой ответила
var t = await Task.WhenAny(Para1(2000), Para1(100), Para1(500));
Console.WriteLine(t.Result); //вместо t.Result можно использовать await t