Как параллельно выполнять функции на C#?

236
30 июня 2017, 04:56

При запросе пользователя я хочу произвести несколько запросов к БД и потом вывести ответ.
Но, если я использую

async
await- Function1    
await- Function2  
await- Function3  
"склеить ответ функций и перевести в json"  
вывести ответ....  

то фактически эти функции выполняются друг за другом с тем лишь отличием, что процесс не подвисает, пока ответа нет, в отличии от синхронного программирования, но никакой многопоточности нет.
Как сделать многопоточность и вот когда ответ будет получен со всех функций- вызвать await?

Answer 1

Попробуйте через Task.WhenAll:

Task first  = Function1();
Task second = Function2();
Task third  = Function3();
await Task.WhenAll(first, second, third);
READ ALSO
Крестик как в google chrome c# windows form

Крестик как в google chrome c# windows form

Подскажите пожалуйста, возможно ли создать крестик для закрытия вкладок, как в Chrome для Windows Forms (TabPage)

238
Может ли произойти OutOfMemoryException для small heap

Может ли произойти OutOfMemoryException для small heap

Может ли произойти OutOfMemoryException для small heap или такой exception возможен только для large heap? Если это возможно, то что вызывает OutOfMemoryException для small heap? Есть...

349
Можно ли совместно использовать php и asp?

Можно ли совместно использовать php и asp?

Есть десктопное приложение для работы с графикойРеализовано на C#

269
Проблема со звуком Unity3D 5.5

Проблема со звуком Unity3D 5.5

Вечер добрый, такой вопрос : существует корутина, которая вызывается каждый кадр и через полсекунды возвращает скорость изменения переменнойЗадача...

342