相关疑难解决方法(0)

Task.Run()会对性能产生任何影响吗?

我有一个调用数据库的方法,如下所示:

BL方法调用DAO方法:

    public async Task<List<Classes>> GetClassesAndAddRules(string classId)
    {
        var classData = await Task.Run( () => _daoClass.GetClasses(classId));

        //logic for adding rule
        //..................................
    }
Run Code Online (Sandbox Code Playgroud)

DAO中的DatabaseCall:

   //*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;
    }
Run Code Online (Sandbox Code Playgroud)

只是我使用await调用DAO方法有什么性能提升吗?

我的理解是GetClasses()将在一个单独的线程上调用,这样它就不会阻塞并继续处理其他东西.

任何帮助表示赞赏.

c# task-parallel-library async-await c#-5.0 asp.net-mvc-4

2
推荐指数
1
解决办法
1417
查看次数