【发布时间】:2013-08-04 00:56:42
【问题描述】:
我有一个调用数据库的方法,如下所示:
BL方法调用DAO方法:
public async Task<List<Classes>> GetClassesAndAddRules(string classId)
{
var classData = await Task.Run( () => _daoClass.GetClasses(classId));
//logic for adding rule
//..................................
}
DAO 中的数据库调用:
//*below method takes 1 second approx to return*
public List<Classes> GetClasses(string id)
{
var retVal = new List<Classes>();
using (var context = new test_db_context())
{
var rows = context.GetClassesById(id);
foreach (ClassesDBComplexType row in rows)
{
retVal.Add(Mapper.Map<GetClassesByClassIdOut>(row));
}
}
return retVal;
}
仅使用 await 调用 DAO 方法是否有任何性能提升?
我的理解是 GetClasses() 将在单独的线程上调用,这样它就不会阻塞并继续处理其他东西。
感谢任何帮助。
【问题讨论】:
标签: c# asp.net-mvc-4 task-parallel-library async-await c#-5.0