在主线程中使用detach(),传递handle给子线程序,在子线程中使用attach(),子线程接收正常,但是不能响应消息了,如onclose.
在主线程中就能响应.
 高手告知一下,怎么办啊,,,,我如何知道客户连接断开了呢?

解决方案 »

  1.   

    使用用户界面线程,不要使用工作者线程,否则无法传递消息;还有你有AsyncSelect()吗?
      

  2.   

    shenyi0106(紫色清风):你说得很对,我是用的工作者线程,没有用AsyncSelect(),不知道AsyncSelect()是做什么用的。帮忙解释一下。另外,使用用户界面线程就可以搞定了吗?我从来都没有用过用户界面线程,还要学习一下,你这样做的成功了吗?
      

  3.   

    写一个继承CWinThread的类,重载里面的Initial和ExitInitial(好象是这两个名字),然后把你的CSocket当作成员变量放到里面(必须用指针变量,然后在Initial中new一下,退出时在ExitInitail中删除,用Attach和Detach函数来解除帮定和附加帮定),这样就可以了,我调式跟踪过,是可行的,具体见这个帖子:
    http://community.csdn.net/Expert/topic/5413/5413562.xml?temp=5.616397E-02