在Windows中,如果存在WaitMessage
或WM_MOVE
消息,则WM_ACTIVATE
函数上的线程已恢复,即使这些消息是没有排队(即,我不会用PeekMessage
获得它们。)
问题是这种行为是否与文档一致,因为在Wine中运行时,我观察到的行为是不同的,线程被激活但是没有恢复它是否已经睡眠,而是直接调用WinProc
。 / p>
修改 让我重新说一下,问题就变得更清楚了:
WaitMessage
VM_MOVE
我看到两种可能性:
WaitMessage
WndProc
激活,即不在WaitMessage
这些是否描述了实际行为?另外,如果我立即拨打PeekMessage
,我应该收到1吗?
鉴于WM_MOVE
不是排队的消息而且WaitMessage
等待消息排队,是否应该唤醒该线程?如果是,是应该在WaitMessage
之后立即恢复,还是应该直接调用WndProc
?
我问的原因是因为我似乎在Windows和Wine中遇到了两种不同的行为。在Windows中,线程在WaitMessage
之后立即恢复,在Wine中,线程在WndProc
中激活。