Я смущен о C# async. Я понимаю async для параллельной обработки задачи. Например, метод выполняет задачи A и B, а async позволяет A и B выполнять действие в одно и то же время; B не нужно ждать, пока A не будет сделано.ASP.NET и C# async
Но приведенный ниже примерный код выполняет только одну задачу, которая извлекает данные из базы данных. Это означает, что для параллельных задач нет ничего. Но почему он использует async?
Просьба дать мне совет, чтобы я мог понять async.
[ResponseType(typeof(BookDetailDTO))]
public async Task<IHttpActionResult> GetBook(int id)
{
var book = await db.Books.Include(b => b.Author).Select(b =>
new BookDetailDTO()
{
Id = b.Id,
Title = b.Title,
Year = b.Year,
Price = b.Price,
AuthorName = b.Author.Name,
Genre = b.Genre
}).SingleOrDefaultAsync(b => b.Id == id);
if (book == null)
{
return NotFound();
}
return Ok(book);
}
https://msdn.microsoft.com/en-us/library/mt674882.aspx – Crowcoder
Это лучшая статья/пояснения, особенно раздел «Темы» - это разъясняет, что вы неправильно поняли. –
Только для записи «async позволяет A и B делать действие в одно и то же время»; не является правильным. В большинстве случаев это не * в то же время *. Лучше всего подумать об этом, так как «async/awaits - это синтаксический сахар, который позволяет сделать программу A, пока она ждет результатов B без написания сложного кода». – mayu