作者:龚magnett_672 | 来源:互联网 | 2023-05-18 07:19
voidC**Dlg::OnBnClickedButtonrefresh(){TODO:在此添加控件通知处理程序代码flagTRUE;while(flag){
void C**Dlg::OnBnClickedButtonrefresh()
{
// TODO: 在此添加控件通知处理程序代码
flag=TRUE;
while (flag)
{
//处理程序
}
}
void C**Dlg::OnBnClickedButtonFlag()
{
// TODO: 在此添加控件通知处理程序代码
flag=FALSE;
}
代码实现功能:按下refresh键时,循环执行处理程序;按下flag键时,退出处理程序。
实际仿真时发现,界面卡死。原因是什么呢?或者怎么实现我的功能需求呢?
5 个解决方案
在OnBnClickedButtonrefresh创建工作线程
1、flag不能是局部变量。
2、两个事件必须在不同线程中处理
3、如果两个事件必须在同一个线程中处理,那么事件1的while循环中必须加入语句如 PeekMessage(), TranslateMessage(), DispatchMessage()