Code: Select all
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;
Wenn „await Task.WhenAll(listOfTasks)“ lautet Wenn die Aktion verwendet wird, gibt sie keine JSON-Ergebnisdaten zurück, aber als ich sie auskommentiert habe, übergibt die Aktion die Daten ordnungsgemäß. Was ist hier die beste Vorgehensweise?
Und wie kann ich einen Haltepunkt für asynchrone Methoden verwenden? löst nicht aus. Oder gibt es überhaupt eine Möglichkeit zu sehen, was hier passiert?
Ich habe viele Stack-Threads über asynchrone Verwendungen gelesen, sogar das interessante ForEachAsync und Wait foreach in höheren Versionen.