下面是出现问题的提示:
Detected memory leaks!
Dumping objects ->
thrdcore.cpp(311) : {1550} client block at 0x01CFF300, subtype c0, 68 bytes long.
a CWinThread object at $01CFF300, 68 bytes long
thrdcore.cpp(311) : {1541} client block at 0x01CFEFB8, subtype c0, 68 bytes long.
a CWinThread object at $01CFEFB8, 68 bytes long
thrdcore.cpp(311) : {1532} client block at 0x01CFEC70, subtype c0, 68 bytes long.

解决方案 »

  1.   

    小第通过AfxBegingThread函数启动了工作者线程,同时在外部通过TerminalThread和CloseHandle函数来关闭线程。工作者线程内实现的是阻塞方式的SCOKET通讯,现在是但外部强制关闭线程后,然后就发现线程中有些资源没有被完全释放掉。不知道我还有那些地方有错漏了。
      

  2.   

    同时在外部通过TerminalThread和CloseHandle函数来关闭线程。
    具体怎么做呀!
      

  3.   

    好像先把那个socket close掉,阻塞函数就返回了。当然结果肯定是错的了。
      

  4.   

    尽一切可能不要用TerminalThread,最好让线程自己退出。
      

  5.   

    To NowCan你的意思是说不要先关闭掉SOCKET连接,然后在关闭线程是吗?我是这样做的,我现在在想是不是干脆直接关闭线程算了。(估计行不通,没做实验)
      

  6.   

    To  eureka007取得创建线程的句柄后就可以在外部直接强制关闭了。
      

  7.   

    最好让线程自身退出,如
    在线程中
    While(g_Run)
    {
     ........
    }可以在主线程中设置
    g_Run = FALSE;
    从而让线程退出
    SOCKET最好是线程中的局部变量,因而线程退出时会释放资源