我这里有一个场景,当数据库调用异步运行时,如何进行一些并行处理。
/// <summary>
/// Async query EF6.0
/// </summary>
/// <returns></returns>
public async Task<ActionResult> AsyncQuery()
{
var result = await GetAsyncDepartments();
Debug.WriteLine("Do some stuff here");
return View("Index");
}
private async Task<List<Department>> GetAsyncDepartments()
{
var depts = new List<Department>();
using (var newContext = new DemoEntities())
{
depts = await newContext.Departments.ToListAsync();
}
Debug.WriteLine("Got departments");
return depts;
}
实际上,它会等待任务完成,然后继续执行语句“在此处执行一些操作”。
如何异步调用GetAsyncDepartments()并在调用返回之前执行一些额外的操作。 谢谢。