我在一个函数里定义了HANDLE hShockEvent;
hShockEvent = CreateEvent( NULL, FALSE, FALSE, _T("Shock") );
退出的时候,hShockEvent 用不用删除啊?如果用,如何删除啊?
CWinThread* pShockThread; pShockThread退出的时候用删除吗?如果用的话该如何删除?

解决方案 »

  1.   

    CloseHandle
    CWinThread没事 
      

  2.   

    HANDLE 是ColseHandle(hSockEvent);
    对于 CWinThread* pShockThread
    看你用什么方式创建的线程,你应该是用AfxBeginThead创建的,如果pShockThread是默认的m_bAutoDelete = TRUE的话是不用删除的,线程退出的时候会自动删除,如果你在创建线程时指定了pShockThread的m_bAutoDelete为FASLE则要delete。
      

  3.   


    顶犀利哥……windows所有句柄东应该使用CloseHandle()释放。
    线程的话,处理退出消息,MFC可以使用AfxEndThread()。
      

  4.   

    HANDLE hShockEvent = CreateEvent( NULL, FALSE, FALSE, _T("Shock") );
    ....
    CloseHandle(hSockEvent);CWinThread* pThread = AfxBeginThread(....);
    结束线程的话就让线程自己return,或者调用AfxEndThread()来结束。
      

  5.   

    看你想做什么了 如果还想用到该线程可以保留 如果对该线程不感兴趣了 可以调用closehandle()来告诉系统 不过此后你不能在使用这个句柄来查询该线程任何信息 线程会在return后结束 
      

  6.   

    内核对像用CloseHandle来减少引用计数,当引用计数为0时,操作系统会摧毁内核对像的。