| 发表于: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(); } } |
|
|
|
|