简单描述下问题:
    用户登陆后,会创建一个登陆ID,并为该ID new一个类对象(假设为ClassA,该类来完成用户的某项操作)
    ClassA中有三个函数:
     1 dosomething()
     2 undosomething()
     3 static recvdata()
   在dosomething()方法中调用createThread方法,启动recvdata()线程,从服务器段接收数据进行处理
   recvdata(LPVOID lParam)
   {
        ClassA * pA = (ClassA*)lParam;
        while(true)
        {
            收数据进行处理;
            当没有数据时或超时break;
         }
         关闭SOCKET连接。
    }
   但是有两个问题: 
   1 如果用户在调用undosomething(停止接收数据)时,线程正在接收数据,如何停止?
   2 如果用户退出,则会根据登陆ID来delete相应的类对象。如果这时线程也是正在接收数据,如何停止,毕竟线程参数就是该对象指针。   问题一,可以加一个停止变量m_isStop,并在访问的时候加锁,在线程的while循环处判断该变量,并且在undosomething中将该变量设为TRUE满足退出条件(当然也是互斥访问)
  但是问题2怎么解决呢,想在ClassA的析构函数中调用下undosomething,先停止线程,但是万一对象删除的比线程结束的快,还是要出问题的,因为线程结束时需要使用对象中的东西,但这时可能对象已经析构完成了。程序可能会崩的。
  有什么好办法么??