c# - 如何在 C# 中围绕第三方 IO 库编写异步包装器

标签 c# .net io async-await

我需要使用一个可以访问其自身数据库的库。不幸的是,所有方法都是经典的同步方法。我更喜欢使用 async 方法来卸载 IO 负载,就像我们已经拥有的 SQL Server 一样。

我知道这是一个非常笼统的问题,没有太多具体信息。有什么方法可以达到那个点,还是太糟糕了?

示例和/或链接将不胜感激。

最佳答案

如果您正在使用的库中有某种形式的异步 API,您可以使用它来制造 async API 与 TaskCompletionSource<T> .可以是BeginX/EndX , DoXXCompleted事件或任何其他形式。

如果不存在类似的东西,您就无法创建真正的异步重载。您可以将这些同步调用卸载到 ThreadPool线程使用 Task.Run但这只会有助于提高响应速度,而不会以任何方式提高性能。

关于c# - 如何在 C# 中围绕第三方 IO 库编写异步包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843165/

相关文章:

c# - 抽象基类还是接口(interface)?两者都不对

c# - 如何使用 .NET 读取 ASP.NET 内部服务器错误描述?

.net - 如何在 .NET 中暂停垃圾回收?

ruby - 在 Ruby 中编辑文件中的每一行

python-3.x - Python 写入文件时出现 unicode 错误

c# - 使用图形 API 以编程方式在 Azure 事件目录中注册应用程序

c# - 如何锁定单个骨架

.net - WPF隧道,实际用途?

node.js - fs.readFileSync 似乎比 fs.readFile 快 - 可以用于生产中的 Web 应用程序吗?

c# - 如何使用凭据通过客户端对象模型连接到 SharePoint 列表?