У меня есть метод, который является Async "вверх по течению". Я стараюсь следовать наилучшей практике и идти олл-ин с асинхронным циклом вплоть до стека.
Внутри действия контроллера в MVC я, как ожидается, попал в тупик. Если я полагаюсь на .Result().
Изменение действия контроллера для async похоже на путь, хотя проблема заключается в том, что метод async вызывается несколько раз в lambda.
Как я могу ждать на lamda, которая возвращает несколько результатов?
public async Task<JsonResult> GetLotsOfStuff()
{
IEnumerable<ThingDetail> things= previouslyInitialisedCollection
.Select(async q => await GetDetailAboutTheThing(q.Id)));
return Json(result, JsonRequestBehavior.AllowGet);
}
Вы можете видеть, что я попытался сделать асинхронный лямбда, но это просто дает исключение для компилятора:
Невозможно преобразовать тип источника
System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<ThingDetail>
для целевого типаSystem.Collections.Generic.IEnumerable<ThingDetail>
Где я здесь не так?