gpt4 book ai didi

c# - 使用 ExecuteReaderAsync 时出现死锁

转载 作者:行者123 更新时间:2023-11-30 19:17:16 27 4
gpt4 key购买 nike

我正在尝试使用异步模式来执行 SQL 命令并返回 DataTable。有人可以建议如何解决这个问题吗?

这是我的代码:

    private static async Task<DataTable> ExecuteAsync(Connections connection, SqlBuilder sql)
{
using (SqlConnection conn = new SqlConnection(GetConnectstring(connection)))
{
await conn.OpenAsync();
using (SqlCommand cmd = new SqlCommand(sql.Query, conn))
{
foreach (var parameter in sql.ColumnValues.Where(d => !d.Name.StartsWith("#")))
{
cmd.Parameters.AddWithValue(parameter.Name, parameter.Value);
}

//Why am I getting a deadlock when executing the next line?
using (SqlDataReader reader = await cmd.ExecuteReaderAsync())
{
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
}
}
}

最好的问候,托马斯

最佳答案

我怀疑您正在使用 WaitResult 进一步调用堆栈。这causes a deadlock如果从 UI 线程调用,如我在博客中所述。

关于c# - 使用 ExecuteReaderAsync 时出现死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com