JThread::~JThread() { if( m_handle ){ WaitForThreadEnd(); ::CloseHandle(m_handle); m_handle = NULL; } }
void EndOfSMTP () { // 等待所有线程执行完毕 for ( int i=0; i<g_PtrAry_Threads.GetSize(); i++ ) { HANDLE hThread = (HANDLE)g_PtrAry_Threads.GetAt(i); if ( HANDLE_IS_VALID(hThread) ) { WaitForThreadEnd ( &hThread, 30*1000 ); } } g_PtrAry_Threads.RemoveAll (); }
JTimer::~JTimer() { m_event.SetEvent(); WaitForThreadEnd(); }
JUdpSocket::~JUdpSocket() { WaitForThreadEnd(); Close(); ::WSACleanup(); }
JTcpServer::~JTcpServer() { WaitForThreadEnd(); ::WSACleanup(); }