Код: Выделить всё
var reqs = History.OrderByDescending(m => m.DateFiled).Skip(pageIndex * pageSize).Take(pageSize);
var rowsObj = new List(); // Use a List instead of an array
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;
Когда await Task.WhenAll(listOfTasks) имеет значение использованное действие не возвращает никаких данных jsonresult, но когда я его закомментировал, действие передает данные правильно, какова здесь лучшая практика?
И как я могу использовать точку останова для асинхронных методов, это не срабатывает. или все-таки можно посмотреть, что здесь происходит?
Я прочитал много тем по стеку об использовании асинхронности, даже интересный ForEachAsync, и жду foreach в более высоких версиях.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -whenallli