Производительность при ожидании нескольких параметров функции - PullRequest
1 голос
/ 04 мая 2020

Повышает ли производительность ожидание нескольких функциональных параметров? Функции параметров выполняются параллельно или производительность не будет увеличена по сравнению с не асинхронными c функциями?

Пример кода:

var result = GetGesult(await Func1(), await Func2(), await Func3(), await Func4());

1 Ответ

7 голосов
/ 04 мая 2020

Асинхронные функции будут выполняться одна за другой.

Вы можете запустить все и дождаться завершения всего, прежде чем присваивать результаты параметрам следующих функций.

var func1Task = Func1();
var func2Task = Func2();
var func3Task = Func3();
var func4Task = Func4();

await Task.WhenAll(func1Task, func2Task, func3Task, func4Task)

var result = 
    GetGesult(await func1Task , await func2Task, await func3Task, await func4Task);
...