기본 저장소 클래스를 비동기로 만들려고하는데 문제가 있습니다. 내 C# 응용 프로그램에서 Dapper ORM을 사용하고 있습니다.async에서 기본 스레드를 차단/대기
자료 방법
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();
에서 차단된다는 것입니다. 이것은 비동기 및 대기를 사용하는 첫 번째 시도이므로 잘못된 작업을 수행하고 있다고 확신하지만 분명하지는 않습니다. 도와주세요!
@KirillShlenskiy 나는 당신이 뭔가있는 것 같아. 나는 그것을 사용하고있는 방법 중 하나를 보여주기 위해 대부분 편집 할 것입니다. – fizch
이제는 소비 측면을 게시 했으므로 확신합니다. 내 의견을 답으로 다시 게시하십시오. –