C# "一瞥";ExecuteReaderAsync();没有反应
使用时,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
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您不是第一个:)