WaitForSingleObject & UI

在一个程序中,用了IOCP、多线程
在多线程程序中,需要同步,用了 WaitForSingleObject

在主线程使用 WaitForSingleObject 会有以下的问题
http://www.cppblog.com/sleepwom/archive/2009/01/18/72268.html
http://www.cppblog.com/sleepwom/archive/2008/12/18/69706.html

后来使用了 MsgWaitForMultipleObjects  API
结果又产生了新的问题
http://www.cppblog.com/sleepwom/archive/2009/04/22/80793.html

MsgWaitForMultipleObjects 一边 wait for object 一边处理消息
如果运气差,处理了一个“阻塞”的消息,那么即使 object 被激活了,也不会返回

早上起床突然有了个新的想法
   

在UI不使用 WaitForSingleObject 之类的API,然后在本机创建一个服务,UI 层通过发送消息包去处理需要 Wait 的东西,然后在 Service 里使用 WaitForSingleObject

这样一来,UI层就变得简单多了,也可以避免因为使用WaitForSingleObject而出现界面死锁的现象, 但 UI 和 service 之间多了一层协议 ……

你可能感兴趣的:(WaitForSingleObject & UI)