C++ Windows XP 中的 Pipe ReadFile 函数设置超时
有没有办法在Windows XP中执行超时的ReadFile
?
如果没有,有没有办法将管道与其他线程断开?
Is there a way to perform ReadFile
with timeout in Windows XP?
If not, is there a way to break the pipe from other thread?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 重叠 I/O< 设置异步 ReadFile /a>.然后,您可以使用 CancelIOEx 取消随时阅读。
Set up an asynchronous ReadFile using Overlapped I/O. You can then use CancelIOEx to cancel the read at any time.
假设您正在谈论命名管道,通常的方法是进行重叠读取,并在调用
WaitForSingleObject
(或WaitForMultipleObjects
)时指定超时。当/如果超时到期,等待将返回WAIT_TIMEOUT
而不是WAIT_OBJECT_0
。Assuming you're talking about a named pipe, the usual way is to do an overlapped read, and specify a timeout when you call
WaitForSingleObject
(orWaitForMultipleObjects
). When/if the timeout expires, the wait will returnWAIT_TIMEOUT
instead ofWAIT_OBJECT_0
.