📄 thread.h
字号:
#if !defined(Thread_H)
#define Thread_H
#include "SysEvent.h"
//#define UseWin32Thread
#if !defined(UseWin32Thread)
#include <process.h>
#endif
////////////////////////////////////////////////////////////////////////
// Thread
//##ModelId=424BB6400288
class Thread
{
public:
enum
{
idCancel,
idSuspend,
idResume,
idEnd,
idNoEvents
};
private:
//##ModelId=424BB6400289
static long m_delayTime; // define time to delay for a thread sleep
//##ModelId=424BB6400298
void * m_pThreadData; // data for this thread
//##ModelId=424BB64002A7
HANDLE m_hThread; // handle to thread
//##ModelId=424BB64002A8
DWORD m_idThread; // id of thread
//##ModelId=424BB64002B8
SysEvent m_events[idNoEvents]; // base thread events
public:
//##ModelId=424BB64002C6
Thread ();
//##ModelId=424BB64002C7
~Thread ();
// create/destroy
//##ModelId=424BB64002C8
bool create ( void * pThreadData = NULL );
//##ModelId=424BB64002D6
void release ();
// thread methods
//##ModelId=424BB64002D7
void * getData () { return m_pThreadData; }
//##ModelId=424BB64002D8
HANDLE getHandle () { return m_hThread; }
//##ModelId=424BB64002D9
DWORD getId () { return m_idThread; }
// event methods
//##ModelId=424BB64002E6
bool createThreadEvents ();
//##ModelId=424BB64002E7
HANDLE getEvent ( long id ) { return m_events[id].getEvent(); }
//##ModelId=424BB64002F5
void setEvent ( long id ) { m_events[id].set(); }
//##ModelId=424BB64002F7
void resetEvent ( long id ) { m_events[id].reset(); }
//##ModelId=424BB6400305
HANDLE getEndEvent () { return m_events[idEnd].getEvent(); }
//##ModelId=424BB6400306
void setEndEvent () { m_events[idEnd].set(); }
//##ModelId=424BB6400307
HANDLE getCancelEvent () { return m_events[idCancel].getEvent(); }
//##ModelId=424BB6400308
void setCancelEvent () { m_events[idCancel].set(); }
//##ModelId=424BB6400315
void resetCancelEvent () { m_events[idCancel].reset(); }
// control
//##ModelId=424BB6400316
void stop ();
//##ModelId=424BB6400317
void suspend ();
//##ModelId=424BB6400318
void resume ();
//##ModelId=424BB6400324
void cancel ();
// run method
//##ModelId=424BB6400325
virtual long run ();
// virtual idle method
//##ModelId=424BB6400327
virtual void idle ()
{}
// static thread proc
#if defined(UseWin32Thread)
//##ModelId=424BB6400335
static DWORD WINAPI threadProc ( LPVOID parameter );
#else
static unsigned _stdcall threadProc ( LPVOID parameter );
#endif
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -