У меня есть синхронный вызов, который мне нужно преобразовать в асинхронный, я использую ключевые слова async / await, но он возвращается только после завершения задачи, что мне нужно сделать, это вернуть результаты в пользовательский интерфейс один за другим.
Сценарий состоит в том, что у меня есть список задач, отображаемый для пользователя после аутентификации, однако я хотел бы, чтобы задача загружалась по одной после того, как они были извлечены из БД, вот мой actionResult, который объединяет критерии поиска для предварительного -фильтровать задачи:
public async Task<ActionResult> Index(string searchTerm = null, int page = 1)
{
Shared.InitialiseCriteria(SearchCriteria);
SearchCriteria.DepartmentID = DepartmentID;
SearchCriteria.PageSize = 15;
SearchCriteria.FreeText = searchTerm;
var model = await DoStuff(SearchCriteria);
if (Request.IsAjaxRequest())
{
return PartialView("_ConversationList", model);
}
return View(model);
}
И вот задача ожидания, которую вызывает GetConversation, которая по существу получает задачи, когда первая задача найдена, мне нужно, чтобы она была загружена в представление индекса:
private async Task<Result> DoStuff(CSearchCriteria SearchCriteria)
{
return GetConversations(SearchCriteria);
}