📄 cmthreadmanager.cpp
字号:
#include "CMThreadManager.h"
#include <process.h>
CMThreadManager* CMThreadManager::selfInstance = 0;
CMThreadManager::CMThreadManager()
{
}
CMThreadManager::~CMThreadManager()
{
ListPosition pos;
while( listThreadHandle.size() > 0 )
listThreadHandle.erase( listThreadHandle.begin() );
}
CMThreadManager* CMThreadManager::getInstance()
{
if( selfInstance == 0)
selfInstance = new CMThreadManager();
return selfInstance;
}
void CMThreadManager::releaseInstance()
{
if( selfInstance != 0 )
{
delete selfInstance;
selfInstance = 0;
}
}
void CMThreadManager::join()
{
ListPosition pos, posPrev;
pos = listThreadHandle.begin();
while( pos != listThreadHandle.end() )
{
posPrev = pos++;
::WaitForSingleObject( *posPrev, INFINITE );
listThreadHandle.erase( posPrev );
}
}
HANDLE CMThreadManager::spawn( void* startAddress, LPVOID parameter, DWORD* threadID )
{
HANDLE threadHandle;
//threadHandle = ::CreateThread( 0, 0, startAddress, parameter, 0, threadID );
threadHandle = (HANDLE)_beginthreadex(NULL, 0,(unsigned int (__stdcall *)(void *)) startAddress, parameter, 0, (unsigned int *)threadID) ;
listThreadHandle.push_back( threadHandle );
return threadHandle;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -