【问题标题】:C++ Pipe ReadFile function set timeout in Windows XPWindows XP 中的 C++ Pipe ReadFile 函数设置超时
【发布时间】:2011-11-14 20:59:31
【问题描述】:

有没有办法在 Windows XP 中执行 ReadFile 超时?

如果没有,有没有办法将管道与其他线程断开?

【问题讨论】:

标签: winapi timeout


【解决方案1】:

使用Overlapped I/O 设置异步ReadFile。然后,您可以随时使用CancelIOEx 取消读取。

【讨论】:

    【解决方案2】:

    假设您在谈论命名管道,通常的方法是进行重叠读取,并在调用WaitForSingleObject(或WaitForMultipleObjects)时指定超时。当/如果超时到期,等待将返回WAIT_TIMEOUT 而不是WAIT_OBJECT_0

    【讨论】:

    • @Erik:在创建命名管道时指定FILE_FLAG_OVERLAPPED,并在调用ReadFile 时传递OVERLAPPED 结构(或任何数量的其他可能性,例如ReadFileEx - Microsoft已经完成了几次重叠 I/O 的迭代)。
    猜你喜欢
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 2011-12-06
    • 2021-07-29
    • 2018-11-14
    • 2015-03-14
    • 2012-08-20
    相关资源
    最近更新 更多