什么是最好的做 STA 线程同步?
我有一个基于对话框的 MFC 应用程序,它有两个 STA 线程:主线程和第二线程。我在主 UI 线程中创建了 COM 对象。
我从第二个线程调用 COM 接口。在主线程中,为了确保第二个线程在主线程继续之前完成,我使用循环来等待线程。此循环循环调用 MsgWaitForMultipleObjectsEx(timout=500)。
我立即陷入了等待的僵局。然后我意识到 MFC 消息泵 AfxInternalPumpMessage() 仅有助于阻塞调用,但对死锁情况毫无帮助。
然后我将 Peek/Translate/DispatchMessage 代码添加到等待循环中,然后一切正常。
现在,似乎没有手动编码 Peek/Translate/DispatchMessage 循环,您根本无法进行 STA 线程同步?任何等待电话都会使您陷入僵局。那么同步 STA 线程的最佳或标准方法是什么?
谢谢!