【发布时间】:2015-06-19 19:59:03
【问题描述】:
我正在考虑使用 asio 在使用 CreateFile(...overlapped...) 创建的 Windows“设备句柄”上执行“重叠”(完成端口)样式 IO
虽然我有一个非常特殊的设计,但由于我的应用程序的具体情况,我必须维护一个不同的线程池来执行数据的实际处理(工作池)和一个池(一个非常小的,可能只是一个线程) 由处理池触发的实际 IO 完成。
基本上,一开始我想向我的设备触发一些从 IO 池启动的 IO 请求。当这些完成时,我通知调度组件 POSTS 完成数据包内容到工作池中的不同线程。这些完成通知很快返回,因为实际处理将发生在工作池中 -> 并且在处理发生后从特定工作池线程启动新的“读取”,这应该触发 io 池上的完成。
是否可以使用 windows::stream_handle 进行这种分离?一般来说,asio API 似乎将读取完成与与流对象关联的相同 io_service 相关联。
编辑 现在已经很长时间了,因为我已经实施了这种方法。 我已更新我的回复以反映我的选择。
【问题讨论】:
标签: c++ windows boost-asio