首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在有输入的事件和WaitForMultipleObjects上使用IOCompletionPort吗?

我可以在有输入的事件和WaitForMultipleObjects上使用IOCompletionPort吗?
EN

Stack Overflow用户
提问于 2013-11-22 14:27:40
回答 1查看 444关注 0票数 0

我正在将对FTDI驱动程序的支持添加到现有的代码库中,该代码库使用重叠的IO和IOCompletionPort与串行端口和管道通信。我希望直接与FTD2xx.dll接口,而不是使用虚拟com端口函数(000071%29.pdf)。

问题是,据我所知,FTD2xx.dll模拟重叠的IO,但与IOCompletionPort不兼容。但是,无论何时在驱动程序内部状态中发生任何更改,都可以传递设置的事件。我正在更新的程序具有非常低的吞吐量,但需要非常低的延迟(与嵌入式系统的实时通信)。

因此,我的问题是,如何等待事件被发出信号或IOCompletionPort不为空?最好不要使用任何其他线程。

或者,我可以使用RegisterWaitForSingleObject和回调一起使用,该回调会向IOCompletionPort发布一条消息吗?我知道这使用线程池,在系统繁忙的情况下,这会增加延迟吗?(我可以将自己的三个设置为高优先级,但我对线程池的优先级一无所知)。

编辑:,如果我在RegisterWaitForSingleObject中使用WT_EXECUTEINWAITTHREAD标志,这个“侍者线程”是什么线程,它有什么优先级?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 16:38:19

IOCP不是一个可等待的对象,因此不能直接与任何等待函数一起使用它。您可以做的是通过CreateEvent()创建一个单独的可等待事件,然后有一个单独的线程调用GetQueuedCompletionStatus/Ex(),并在IOCP数据包到达时向事件发出信号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20147248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档