📄 cthreadobject.cpp
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "CThreadObject.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
CThreadObject::CThreadObject(LPVOID Owner,LPTHREAD_START_ROUTINE lpStartAddres, char * ThreadName)
: m_Owner(Owner),
m_lpStartAddres(lpStartAddres),
m_bActive(false)
{
memset( m_ThreadName, 0x0, sizeof(m_ThreadName) );
memcpy( m_ThreadName, ThreadName, strlen(ThreadName) > 100 ? 100 : strlen(ThreadName) );
m_hThread = CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, (LPVOID)this, 0, &m_ThreadId );
}
CThreadObject::~CThreadObject()
{
WaitForSingleObject( m_hThread, 500 );
if( !m_bActive )
{
Terminate();
}
CloseHandle( m_hThread );
}
void WINAPI CThreadObject::ThreadProc( LPVOID lpParam )
{
CThreadObject * m_thread = (CThreadObject*)lpParam;
m_thread->m_bActive = true;
m_thread->m_lpStartAddres( m_thread->m_Owner );
m_thread->m_bActive = false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -