您的位置:程序门 -> vc/mfc -> 界面



急死了~~~点击checkbox按钮,死循环问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急死了~~~点击checkbox按钮,死循环问题
发表于:2007-05-25 11:19:52 楼主
有个checkbox按钮,当我点它的时候,他进入死循环,当我在点它的时候跳出的死循环,就跳不出来了,我用了线程,开子线程,建个全局变量,能接受东西,但现在还是跳不出死循环~~请高人指点一下
----------------------
这个是线程
uint   recvmsg(lpvoid   pparam){
deliverresp   dlvr;                                                                     //声明结构体对象指针
volatile   int   ntemp;
::waitforsingleobject(g_eventstart,infinite);

while(   true)       //判断连接短消息网关,等待接收属于本cp的短消息
{
int   number   =   cngpdeliver(500,&dlvr);
if(dlvr.nisreport   ==   number){
recdestadrr   =   dlvr.ssrctermid;                 //短消息发送用户号码
recsendadrr   =   dlvr.sdesttermid;               //   短消息接收用户号码 }
if(::waitforsingleobject(g_eventkill,0)==wait_object_0){
flag=0;
break;
}
}
//::postmessage((hwnd)   pparam,wm_threadfinished,0,0);

return   0;

}
-------------------------------------
这是checkbox调用上面的线程就是不跳出死循环
void   cmsgdlg::oncheckrecv()  
{
getdlgitem(idrecive)-> enablewindow(true);
cwinthread   *   pthread=afxbeginthread(recvmsg,getsafehwnd(),thread_priority_normal);
if(m_bischeckrecv){
flag=1;
g_eventstart.setevent();
m_strrecdestadrr   =   recdestadrr;     //短消息发送用户号码
m_strrecsendadrr   =recsendadrr;   //   短消息接收用户号码

updatedata(false);

}else{
if(flag==0){
g_eventstart.setevent();
}
g_eventkill.setevent();
}

}
发表于:2007-05-25 11:44:591楼 得分:0
break没执行到呗


快速检索

最新资讯
热门点击