You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitlib.pub/MITLib/Utility/Thread.h

29 lines
712 B
C

#pragma once
#include "Utility.h"
class UTILITYDLL CThread
{
// friend DWORD WINAPI MyThreadFunction( LPVOID lpParam );
friend UINT __cdecl MyThreadFunction( LPVOID lpParam );
private:
HANDLE m_threadHandle;
CWinThread *m_pWinThread;
DWORD m_threadId;
const char* m_threadName;
CEvt m_eventStarted;
void _Run();
bool bIsInterrupted;
public:
CThread(const char* threadName);
virtual ~CThread(void);
virtual void Run() = 0;
bool Start();
bool Wait(DWORD dwMilliSeconds=INFINITE);
bool WaitStarted(DWORD dwMilliSeconds=INFINITE);
DWORD GetThreadId();
HANDLE GetThreadHandle();
const char* GetName() { return m_threadName; }
void Interrupt();
bool IsInterrupted();
};