求教多线程程序界面无响应的问题
郑再鹏 2009-05-17 04:49:57 我的程序是个多线程的,底层多个线程采集数据,中间一个线程保存数据,并发消息给主界面通知他显示数据,界面线程(使用CWinAPP默认的主线程)显示数据。
平时程序跑得没问题,但是只要是长时间(连续跑10小时左右)测试,就会出现界面无响应的问题,但这时候数据采集线程,分发线程都仍在正常工作,只是发送给界面的让界面更新的消息(自定义消息,即WM_USER + N)无法被界面收到。不知道是为什么。但可以明确没有内存泄漏。
请教各位高手给点思路,一般有什么可能会造成消息无法被响应?消息队列乱了吗?还是别的原因?如何判断?
另外,程序中有peekmessage方法,传入最后的参数为PM_REMOVE,但是有while循环把peek到的message给translate和dispatch的操作。