Re[8]: Можно ли избавиться от async|await?
От: novitk США  
Дата: 14.12.25 18:04
Оценка:
Здравствуйте, SkyDance, Вы писали:

N>>Какое нафиг отношение pattern matching имеет к асинхронности?


SD>Прямое:

SD>
SD>get_result() ->
SD>  spawn(parall1),
SD>  spawn(parall2),
SD>  spawn(parall3),
SD>  receive
SD>    {parall1, Result} -> Result;
SD>    {parall2, Result2} -> Result2;
SD>    {parall3, Result3} -> Result3;
SD>  end.
SD>


SD>Запускаешь 3 функции в параллель, которая первой ответила — тот результат и возвращаем.


public static async Task<T> GetResultAsync()
{
    var task1 = parall1();
    var task2 = parall2();
    var task3 = parall3();

    return Task.WhenAny(task1, task2, task3) switch
    {
        task1 => await task1;
        task2 => await task2;
        task2 => await task3;
    };       
};

PM в C# тут конечно не нужен:
    return await Task.WhenAny(task1, task2, task3);

, но я написал для тебя по эрланговски, длинно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.