c# - IO 完成端口 (IOCP)

标签 c# sql wcf asynchronous io

当我调用 BeginExecuteReader (SQL) 时,它是否使用 IO 完成端口?是什么让它成为异步的?我应该从 Begin[Operation]() 还是从 IAsyncResult 构造函数的包装器调用它?

最佳答案

does it use IO Completion Ports

也许吧,但这是 native SQL 客户端实现中的一个实现细节。

请记住 SQL Server ADO.NET 调用(本地) native SQL Server 客户端,该客户端将执行与服务器的通信。

What makes it to be async?

它的实现。有不止一种方法可以做到这一点,从伪造它的方法(使用专用工作线程执行阻塞操作)到 IO 完成端口和其他“真正的”异步 API。

Where from should I call it ?

适合您的设计的地方。

for IAsyncResult constructor?

如何使用异步 API(回调传递给 BeginExecuteReader,轮询返回的 IAsyncResultIsComplete,等待 IAsyncResult,使用 Task 转换为 TaskFactory.FromAsync,使用带有 Observable.FromAsyncPattern 或其他内容的响应式(Reactive)扩展)再次成为您的代码设计的一部分。

提供任何形式的指导的可能性太多。

关于c# - IO 完成端口 (IOCP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217213/

相关文章:

c# - 将十进制格式设置为美国货币

MySQL 在具有多个值时使用 `IN`

以下模式的sql查询

c# - 使用 Log4Net 时未创建日志文件

c# - 如何反序列化自定义对象列表

.net - 如何使用 Winforms 实现 .net 3 层架构

C# Windows 服务 - 多个计时器

c# - WPF 使列滑入位置 XAML

c# - 使用 ReadByte() 读取泛型类型

python - 通过数据库的另一个函数调用函数中的变量