mirror of
https://github.com/balloonwj/TeamTalk.git
synced 2026-10-19 06:41:50 +08:00
81 lines
1.6 KiB
C++
81 lines
1.6 KiB
C++
/*******************************************************************************
|
|
* @file TTThread.cpp 2014\7\1 16:04:19 $
|
|
* @author żěľś<kuaidao@mogujie.com>
|
|
* @brief windowsĎ̴߳ŚŔíľÄ°ü×°
|
|
******************************************************************************/
|
|
|
|
#include "stdafx.h"
|
|
#include "utility/TTThread.h"
|
|
|
|
/******************************************************************************/
|
|
NAMESPACE_BEGIN(util)
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// TTThread: Public, Constructor
|
|
|
|
TTThread::TTThread()
|
|
:m_hThread(0)
|
|
{
|
|
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// TTThread: Public, Destructor
|
|
|
|
TTThread::~TTThread()
|
|
{
|
|
if (m_hThread)
|
|
::CloseHandle(m_hThread);
|
|
m_hThread = 0;
|
|
}
|
|
|
|
BOOL TTThread::create()
|
|
{
|
|
m_hThread = (HANDLE)_beginthreadex(0,0, _threadProc, this, 0, (unsigned*)&m_dwThreadID);
|
|
|
|
if (m_hThread < (HANDLE)2)
|
|
{
|
|
m_hThread = 0;
|
|
m_dwThreadID = 0;
|
|
}
|
|
|
|
return m_hThread >(HANDLE)1;
|
|
}
|
|
|
|
void TTThread::destory()
|
|
{
|
|
if (m_hThread)
|
|
{
|
|
::TerminateThread(m_hThread, 0);
|
|
WaitForSingleObject(m_hThread, 500);
|
|
::CloseHandle(m_hThread);
|
|
m_hThread = 0;
|
|
m_dwThreadID = 0;
|
|
}
|
|
}
|
|
|
|
BOOL TTThread::wait(DWORD dwWaitTime)
|
|
{
|
|
if (m_hThread == 0)
|
|
return TRUE;
|
|
return (::WaitForSingleObject(m_hThread, dwWaitTime) != WAIT_TIMEOUT);
|
|
}
|
|
|
|
UInt32 TTThread::process()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
UInt32 __stdcall TTThread::_threadProc(void *lpParam)
|
|
{
|
|
TTThread* pThread = (TTThread*)lpParam;
|
|
assert(pThread);
|
|
if (pThread != 0)
|
|
{
|
|
pThread->process();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
NAMESPACE_END(util)
|
|
/******************************************************************************/ |