有关windows编程API问题. (双线程,如何让一个执行死循环的线程停下来)

来源:百度知道 编辑:UC知道 时间:2024/05/10 15:25:54
用API编了一个LCD模拟显示平台. 因为LCD显示程序是一个死循环.我创建了另外一个线程处理屏幕刷新的问题. 但因为消息一直停在那个死循环消息处理中,所以无法响应其他消息. 那现在该如何实现按钮响应?
这个方法不行,因为死循环的时候按钮是不响应的.所以根本没有办法改变bCut值.
而且死循环部分是我为其他程序员设计的接口函数中,他们写的死循环. 该部分代码原则上我是不干预的.

你的意思是说,有一个线程为了处理一个消息必须使自己陷入一个死循环中,这样就不能响应别的消息了,对吗?
我有一个办法,看对你有没有启发。
假设造成死循环的代码是:
while(TRUE)
{
......
}
可以先在类体外声明一个全局函数BOOL bCut;
然后把上面的系循环改为
while(TRUE)
{
if(bCut){...;}
......;
}
最后,按钮响应函数只要改变bCut的值即可,注意,要考虑if语句的分支是否将bCut恢复过来。