EnumWindows问题
笔者在日常开发中用到一种场景,该场景是启动一个子线程,在该线程里循环查找指定窗口是否存在。
里面用到了EnumWindows
、GetClassName
和GetWindowText
的API。
从而引发了一个线程无法正常退出,使用WaitForSingleObject
等待线程结束将永远无法结束的问题。
初步猜测可能是因为EnumWindows
的回调函数中使用了GetClassName
和GetWindowText
的原因。这两个函数会给消息循环发消息,最后造成的阻塞问题。
这里贴出解决该问题的代码,当然此类问题最好使用其他的解决方案去规避。
1 | void XXXXX::WaitXXXXXThread() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凌鸽技术博客!
评论