【发布时间】:2020-03-13 20:09:40
【问题描述】:
下面显示的代码在 asp.net mvc 应用程序中执行
public async Task<string> GetCustomers1(){
return await getcustomer1Async();
}
public async Task<string> GetCustomers2(){
return await getcustomer2Async();
}
public async Task<JsonResult> Index(){
var result1 =Task.Run(()=>GetCustomers1());
var result2 =Task.Run(()=>GetCustomers2());
Task.WaitAll(result1,result2);
}
我很清楚任务运行会创建两个线程来执行GetCustomers1、GetCustomers2方法。 - 我的问题是当GetCustomers1和GetCustomers2方法到达有await这个词的行时,不完整的任务应该返回,不完整的任务应该返回到哪里?线程是否返回线程池? -Task.WaitAll 在其他任务完成运行之前,你会让主线程忙吗?
我知道如果方法是异步的,你不应该使用 tak.run。但我想知道在这种情况下代码在内部是如何工作的。
【问题讨论】:
标签: asp.net-mvc performance async-await task-parallel-library