关于多线程使用有关问题,多谢大家

【求助】关于多线程使用问题,谢谢大家
线程定义如下
CSemaphore Data(2,2);

操作方法:
1.用线程的方式做了一个TCP/IP通信,但是在线程中,有一个这样的判断,比如电机在运动时候,检测是否停止使用了这样的一个代码
while(!event )

{
if(!TS_CheckEvent(&event)) 
return ;
}

一直去检测,导致线程假死,TCP/IP不能接受到发来的命令,我能否把这句移动到另外一个线程中,这样才能避免这样的问题吗?或者还有什么解决办法呢?谢谢大家了

------解决方案--------------------
把 

while(!event )
 
            {
                if(!TS_CheckEvent(&event)) 
                    return ;
                    }

这个代码放到另外一个线程中,假设当前线程是A,另外一个线程B。


bool bCheckEvent = false;
A()
{
    if( bCheckEvent  )
    {
        //TODO 
    }
}

B()
{
    while(1)
    {
       bCheckEvent = TS_CheckEvent();
       Sleep(100);
    }
}


这里简单的使用全局变量来同步,你也可以使用事件来同步。