当我调用BeginExecuteReader
(SQL)时,它是否使用IO完成端口?是什么使其成为异步的?我应该从构造函数Begin[Operation]()
的包装器中调用还是从包装器调用它IAsyncResult
?
它是否使用IO完成端口
也许可以,但这只是本机SQL Client实现中的一个实现细节。
请记住,SQL Server ADO.NET调用了(本地)本机SQL Server客户端,该客户端将与服务器进行通信。
是什么使它异步?
它的实现。从伪造它的方法(使用专用工作线程执行阻塞操作)到IO完成端口和其他“真正的”异步API,方法不止一种。
我应该从哪里叫它?
只要适合您的设计。
IAsyncResult构造函数?
你如何使用异步的API(回调传递给BeginExecuteReader
,查询返回IAsyncResult
的IsComplete
,等待IAsyncResult
,转换为Task
与TaskFactory.FromAsync
使用无功扩展用Observable.FromAsyncPattern
,或别的东西),再次是设计的一部分,你的代码。
有太多的可能性可以提供任何形式的指导。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句