www.pudn.com > acdx.rar > Thread.cpp
// TextFile.cpp: implementation of the CColumn class.
//
//////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#include "Thread.h"
#pragma warning( disable:4800 )
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//##ModelId=424BB6400289
long Thread::m_delayTime = 500;
/////////////////////////////////////////////////////////////////////////////////
// Thread
//##ModelId=424BB64002C6
Thread::Thread () :
m_pThreadData(0), // data for this thread
m_hThread(0), // handle to thread
m_idThread(0) // id of thread
{}
//##ModelId=424BB64002C7
Thread::~Thread ()
{
release();
}
// create/destroy
//##ModelId=424BB64002C8
bool Thread::create ( void * pThreadData )
{
// get ptr to data
m_pThreadData = pThreadData;
// create events
if ( !createThreadEvents() )
return false;
// create thread
#if defined(UseWin32Thread)
m_hThread =
CreateThread(NULL,0, Thread::threadProc, (LPVOID) this, 0, &m_idThread );
#else
m_hThread = (HANDLE)
_beginthreadex( NULL, 0, Thread::threadProc, (LPVOID) this, 0,
(unsigned int *) &m_idThread );
#endif
if ( m_hThread == 0 )
return false;
// success so start thread
//::ResumeThread( m_hThread );
return true;
}
//##ModelId=424BB64002D6
void Thread::release ()
{
// if valid stop thread
if ( m_hThread )
{
// wait for thread end
stop();
// release events
for ( long id=0; idrun();
// exit the thread
#if defined(UseWin32Thread)
ExitThread( -1 );
#else
_endthreadex( -1 );
#endif
return ret;
}
//##ModelId=424BB6400325
long Thread::run ()
{
// base class run does nothing
return -1;
}