【发布时间】:2014-11-19 20:41:30
【问题描述】:
Boost 线程具有“可中断”的便利特性。该框架在您睡眠等时引入了中断点。但是,使用阻塞 Win32 调用可以绕过此功能。比如WaitForSingleObject会阻塞一个线程,但不会让它被boost线程的中断机制打断。
有什么方法可以包装 WaitForSingleObject 或告诉 boost 等待 Win32 事件句柄,以便我可以重新获得中断点?
【问题讨论】:
-
您必须明确表示您的线程可以安全地被中断。这需要将 bAlertable 参数设置为 TRUE 的 WaitForSingleObjectEx()。不要做出无法兑现的承诺。
标签: c++ windows boost boost-thread interrupt-handling