var balance = userRepo.GetBalance(...) var number = userRepo.GetNumber(...) ... await Task.WhenAll(balance, number, ...) return Success(new ClientMenuModel( Balance = balance.Result, Number = number.Result, ... );/
Спасибо) А за счет чего достигается параллельность? Мне зеленому только про WhenAll и WaitAll известно
таски запускаются сразу после создания
Один самородок как-то на кодревью возбудился на такой код и доказывал, что тут все равно будет синхронная блокировка, т.к. мы тут Result дергаем. Аргументы, что уже сверху был await эффекта не оказали =(
как это можно доказать?
"Нельзя писать Result в асинхронном коде" =)
в целом я бы тоже предпочёл эвейт, мало ли как потом кусок сверху зарефакторят и уберут WhenAll, так хотя бы ногу не отстрелит
так тот кусок прям НАД result, одной строчкой выше
но хуже-то не будет!!1
ну я-то согласен!!1
Обсуждают сегодня