cthreadobject.cpp
来自「一个非常实用的号码魔方工具」· C++ 代码 · 共 36 行
CPP
36 行
//---------------------------------------------------------------------------
#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 + =
减小字号Ctrl + -
显示快捷键?