昨天浏览了COM技术内幕
对windows编程和COM技术有了更全面的了解
windows每一个窗口都会有一个窗口线程 窗口线程与普通线程不同的地方是 windows能对其中的窗口进程函数 消息循环 同步调用 保证不同线程发送过来的消息只在窗口线程 被处理
getmessage 得不到消息线程会被系统挂起 系统隔一段时间会来照顾这个线程 再次getmessage
PeekMessage第一次得不到消息 线程会被系统挂起 系统隔一段时间会来照顾这个线程如果还是得不到消息 peekmessage会返回然后让窗口线程运行:
if (PeekMessage(&msg, NULL, 0, 0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
Idle();
}