【发布时间】:2016-06-16 03:18:04
【问题描述】:
我正在尝试使我的基础存储库类异步,但遇到了一些麻烦。我在我的 C# 应用程序中使用 Dapper ORM。
基础方法
protected async Task<List<T>> Read<T>(CommandDefinition cmd) {
using(SqlConnection myCon = new SqlConnection(Config.DBConnection)) {
await myCon.OpenAsync();
IEnumerable<T> results = await myCon.QueryAsync<T>(cmd);
List<T> retVal = results.ToList();
myCon.Close();
return retVal;
}
}
调用方法
public List<Category> GetAllActiveCategories(Guid siteGuid) {
return base.Read<Category>(SPNAME_GETALLACTIVE, siteGuid).Result;
}
在我看来,一切都井井有条。我有用 async 关键字装饰的方法声明。我正在等待异步方法。
我遇到的问题是await myCon.OpenAsync(); 上的线程阻塞。这是我第一次尝试使用 async 和 await,所以我确定我做错了什么,但这并不明显。请帮忙!
【问题讨论】:
-
@KirillShlenskiy 我认为您正在做某事。我将进行大部分编辑以显示我正在使用的阻止它的方法之一。
-
既然您已经发布了消费方面,我很有信心。转发我的 cmets 作为答案。
标签: c# .net asynchronous async-await dapper