C# "一瞥";ExecuteReaderAsync();没有反应

C# "一瞥";ExecuteReaderAsync();没有反应,c#,.net,ado.net,async-await,glimpse,C#,.net,Ado.net,Async Await,Glimpse,使用时,ExecuteReaderAsync()永远不会返回任何响应: var factory = System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlClient"); var conn = factory.CreateConnection(); conn.ConnectionString = "YourConnectionString"; conn.Open(); var cmd = conn.CreateCo

使用时,ExecuteReaderAsync()永远不会返回任何响应:

var factory = System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlClient");
var conn = factory.CreateConnection();
conn.ConnectionString = "YourConnectionString";
conn.Open();

var cmd = conn.CreateCommand();
cmd.CommandText = "Select 1";                 // Correct SQL is not required. If use SQL "Foo" brings same result.

var result = cmd.ExecuteReaderAsync().Result; // NG. Responce did not return forever.
// var result = cmd.ExecuteReader();          // OK. Responce is return soon.
我使用GlimpseAdo,因此
factory.CreateConnection()
创建
GlimpseDbConnection
的实例。 然后我通过
GlimpseDbCommand
执行SQLAsync,并等待查询结果async

但是
cmd.ExecuteReaderAsync().Result
永远不会返回任何响应。
等待10分钟以上,但不发生超时。 我暂停了VisualStudio上的调试,调试语句处于启用状态
var result=cmd.ExecuteReaderAsync().result

我想。。。此问题是由异步引起的。
您知道响应消失的原因和位置吗?

谢谢你的帮助!

已使用:

.Net Framework 4.5.2
一瞥.核心1.8.6
一窥ADO 1.7.3
SQL Server 2008 R2
此:

var result = cmd.ExecuteReaderAsync().Result;
正在导致代码死锁。我假设您正在运行一个应用程序,该应用程序传递一个同步上下文(UI、ASP.NET、Universal app等)。这就是为什么你

要解决此问题,您必须使您的方法
异步任务
,并使用
等待
,而不是
。结果

var result = await cmd.ExecuteReaderAsync();
您还可以查看和了解更多信息。

此:

var result = cmd.ExecuteReaderAsync().Result;
正在导致代码死锁。我假设您正在运行一个应用程序,该应用程序传递一个同步上下文(UI、ASP.NET、Universal app等)。这就是为什么你

要解决此问题,您必须使您的方法
异步任务
,并使用
等待
,而不是
。结果

var result = await cmd.ExecuteReaderAsync();

您还可以查看和了解更多信息。

谢谢您的回答!我误解了异步处理。@t2k您不是第一个:)谢谢您的回答!我误解了异步处理。@t2k您不是第一个:)