Метод Async в foreach не возвращает данные результата JSON при использовании ожидания Task.WhenAll(listOfTasks)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Метод Async в foreach не возвращает данные результата JSON при использовании ожидания Task.WhenAll(listOfTasks)

Сообщение Anonymous »

Код: Выделить всё

var reqs = History.OrderByDescending(m => m.DateFiled).Skip(pageIndex * pageSize).Take(pageSize);

// Use a List instead of an array
var rowsObj = new List();

List listOfTasks = new List();

// Start all async tasks
foreach (var req in reqs)
{
listOfTasks.Add(rr.ObjectRowsAsync(req, rowsObj));
}

try
{
await Task.WhenAll(listOfTasks);
}
catch (Exception ex)
{
// Handle error (log it or return a meaningful error message)
return Json(new { error = ex.Message }, JsonRequestBehavior.AllowGet);
}

var result = new JsonResult
{
Data = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = rowsObj
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};

return result;
Идея заключалась в том, чтобы использовать async в методе, который имеет цикл foreach и возвращает массив объектов.
Когда await Task.WhenAll(listOfTasks), действие не возвращает никаких данных результата JSON, но когда я его закомментировал, действие передает данные правильно. Какова здесь лучшая практика?И как я могу использовать точку останова на async, он не срабатывает. Или есть какой-нибудь способ увидеть, что происходит?
Я прочитал много тем по стеку об использовании асинхронности, даже интересный ForEachAsync, и жду foreach в более высоких версиях.

Подробнее здесь: https://stackoverflow.com/questions/793 ... sk-whenall
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»