- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在将我们的 DAL 更改为 async
DAL。
看着:
await _conn.OpenAsync().ConfigureAwait(false);
我看到有一个用于打开连接的异步
方法。但是为什么没有用于关闭连接的异步方法?
(以上四点我可能都错了:-))
问题
(对我而言)似乎合乎逻辑的是,应该有一个async close
连接方法。
为什么没有?
PS 我显然会在最后使用 DAPPER,但只是为了练习,我决定创建类似 DAL 的小型迷你迷你 dapper。
最佳答案
A shared connection might used by others
为什么这会使关闭它的调用花费很长时间?如果这意味着什么,在连接仍在被其他人使用的情况下,所有“关闭”意味着您不再需要它,并且不需要关闭实际的底层连接。
It is an I/O operation
不一定。正如您所说,如果它被合并/共享,那么它只是返回到池中,根本不会发生 IO。
是什么让您认为,即使正在关闭底层连接,也需要很长时间。所需要做的就是停止关注连接,可能会通过连接发送一条礼貌的消息,说你已经完成了。这不会花很长时间。您无需等待对此类消息的任何类型的响应,因此您无需等待此方法中完成的网络往返。
Possible delayed / time-consuming operation
为什么会耗费时间?如果它延迟了(例如,如果连接被合并,而当你是它的最后一个用户时你正在关闭它)这意味着它可能会在一段时间后关闭,但是你不是不需要等待。
将对象标记为“不再使用”并不费时,而且在一天结束时,这就是您真正要做的事情。
关于c# - 为什么没有 `DBconnection.CloseAsync()` 而有 `DBconnection.OpenAsync()` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170297/
我有以下代码。对 connection.OpenAsync() 的调用无一异常(exception)地退出了程序。即使是调用者方法上的 finally 也不会被调用。程序的目标是.NET45 知道吗?
我正在尝试使用 MySqlConnector 连接到在 MariaDB 上运行的数据库.但是,如果我从指定网站执行基本代码片段,我的程序会在异步打开数据库连接时立即终止(通过调试发现)。通常,控制台窗
尝试使用 AngleSharp 解析 HTML 并遇到问题 https://opensource.org/licenses/MS-PL 以下代码在 Linqpad 中运行时返回“0” var url
我用下面的代码下载/保存了一张图片,稍后打开,但是在后面的OpenAsync中,抛出了UnauthorizedAccessException,看起来是文件没有关闭,实际上IRandomAccessSt
(标题看起来与 SqlConnection.Open vs SqlConnection.OpenAsync - what's different between the two beyond the
最近,我在与托管在 CentOS 8 上的 PostgreSQL 13 数据库通信时偶然发现了某些问题。我无法使用 NpgsqlConnection 类中的方法 OpenAsync() 打开连接。同步
当我运行这个时: using(SqlConnection connection = new SqlConnection(connectionString)){ await connection
我有一段代码可以在 URI 有效时从 http URI 正确加载图像,但我不知道如何捕获 OpenAsync 在 URI 无效时抛出的异常(结果为 404)。 问题是当包含调用 OpenAsync 的
我正在阅读 documentation for DbConnection.OpenAsync(CancellationToken)并找到以下代码段: The default implementatio
我正在将我们的 DAL 更改为 async DAL。 看着: await _conn.OpenAsync().ConfigureAwait(false); 我看到有一个用于打开连接的异步方法。但是为什
运行我们的 Azure 辅助角色(事件处理器主机)一段时间后,我们收到了这个奇怪的错误。最初我认为这是由于我们通过 ServiceClient (Microsoft.Azure.Devices) 将太
我正在尝试将 CancellationToken 与 SqlConnection.OpenAsync() 结合使用来限制 OpenAsync 函数所花费的时间。 我创建了一个新的 Cancellati
这是一个艰难的过程。使用完全相同的查询字符串,完全相同的以下代码: using (var db = new SqlConnection(queryString)) { await db.Open
我有一个带有一个按钮的简单 WPF 客户端应用程序 (.NET 4.6.2)。SqlConnection.OpenAsync 方法在完成以下步骤时阻塞 UI 线程: SQL Server 已启动并可从
我将 MonoTouch 4.0.7 与 MonoDevelop 2.8 Beta 2 和 XCode 4 一起使用(顺便说一句,有人知道如何获得 MonoTouch 4.2 版本吗?)。我们试图通过
我爱上了 async 和 await,但是我不知道如何在不使用 Task.Run 的情况下等待文件打开。似乎有一个 API in WRT . .NET 4.5 等效项在哪里?我问是因为如果我正在访问远
在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。 异步: public async Ta
我是一名优秀的程序员,十分优秀!