📄 thread.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 + -