gpt4 book ai didi

c# - 使用 Dapper QueryAsync 方法时 connection.OpenAsync 和 connection.Open 之间的区别

转载 作者:太空狗 更新时间:2023-10-30 01:00:22 41 4
gpt4 key购买 nike

在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。

异步:

public async Task<IList<Product>> GetListAsync()
{
using (var connection = new SqlConnection(_connectionString))
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT Id, Name ");
sql.AppendLine("FROM Product ");

await connection.OpenAsync();
var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
return tickets.ToList();
}
}

非异步:

public async Task<IList<Product>> GetListAsync()
{
using (var connection = new SqlConnection(_connectionString))
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT Id, Name ");
sql.AppendLine("FROM Product ");

connection.Open();
var tickets = await connection.QueryAsync<Ticket>(sql.ToString());
return tickets.ToList();
}
}

最佳答案

OpenAsync() 将立即从方法 (GetListAsync) 返回到调用它的方法,以便线程可以同时自由地做其他事情。例如,假设打开连接需要一秒钟(仅作为示例),然后线程可以做其他事情。连接的打开不会由调用它的线程完成。

一旦连接打开,执行将转到下一行:

var tickets = await connection.QueryAsync<Ticket>(sql.ToString());

注意:请注意,在某些情况下,如果 IsCompleted 返回 true,那么它将同步完成。

关于c# - 使用 Dapper QueryAsync 方法时 connection.OpenAsync 和 connection.Open 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46801943/

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