⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmthreadmanager.cpp

📁 Soul的源代码,类似于劲舞团之类的游戏
💻 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 + -