【发布时间】:2013-10-08 14:08:21
【问题描述】:
到目前为止,我开始使用 C++11 std::thread (mingw 4.8) 非常好。我遇到了 I/O 重叠的情况,其中 sleepEx 用于将线程置于警报等待状态。这工作得很好,直到必须使用QueueUserAPC,它返回一个“无效的句柄错误”。
经过一番搜索发现std::thread使用的是Windows下的pthread库。
有什么方法可以使用 Windows API 调用,这些调用需要一个带有 std::thread 的线程句柄?
还是我需要坚持使用 Windows 线程来处理重叠 I/O?
【问题讨论】:
-
我不熟悉 Windows API,但听起来您正在将 Windows API 线程与 C++11 std::threads 混合使用,并且由于 mingw 4.8 在后台使用 pthreads,因此这是领先的到问题。它是否正确?最好只使用一个线程 API,即使有办法让 mingw std::threads 使用 Windows API 线程而不是 pthreads。
标签: windows c++11 mingw stdthread