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

📄 thread.cpp

📁 主要用于http://www.doctorcom.com/开发的dr.com宽带记费系统
💻 CPP
字号:
#include"Thread.h"

Thread::Thread(THREADFUNC func,void* param)
{
	//m_Thread= reinterpret_cast<void*>(_beginThreadex(NULL,NULL,fun,param,NULL,&m_id));
	threadfunc=func;
	this->param=param;
}

Thread::~Thread()
{
	
	for(list<void*>::const_iterator iter=threadlist.begin();iter!=threadlist.end();++iter)
	{
		CloseHandle(reinterpret_cast<HANDLE>(*iter));
	}
	//cout<<"Thread退出!"<<endl;
}



void Thread::ThreadStart()
{
	m_thread= reinterpret_cast<void*>(_beginthreadex(NULL,NULL,threadfunc,param,NULL,&m_id));
	threadlist.push_back(m_thread);
}

void Thread::ChangeThreadFunc(THREADFUNC func,void* param)
{
	threadfunc=func;
	this->param=param;
}

void Thread::Join(int time)
{
	unsigned dw=WaitForSingleObject(reinterpret_cast<HANDLE>(m_thread),time);
	switch(dw)
	{
	case WAIT_OBJECT_0:break;
	case WAIT_TIMEOUT:break;
	case WAIT_ABANDONED:break;
	case WAIT_FAILED:break;
	default:break;

	}
}

//************************************************************************************

Mutex::Mutex()
{
	m_mutex=CreateMutex(NULL,false,NULL);
}

Mutex::~Mutex()
{
	CloseHandle(reinterpret_cast<HANDLE>(m_mutex));
}

//************************************************************************************

bool Sourceshare::GetMutex(Mutex& mutexobj, int time)
{
	unsigned dw=WaitForSingleObject(reinterpret_cast<HANDLE>(mutexobj.m_mutex),time);
	switch(dw)
	{
	case WAIT_OBJECT_0:return true;break;
	case WAIT_TIMEOUT:return false;break;
	case WAIT_ABANDONED:break;
	case WAIT_FAILED:break;
	default:break;

	}
	return false;

}

void Sourceshare::Release_Mutex(Mutex& mutexobj)
{
	ReleaseMutex(reinterpret_cast<HANDLE>(mutexobj.m_mutex));
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -