sl@0: //------------------------------------------------------------------------------ sl@0: #ifndef THREAD_H_INCLUDED sl@0: #define THREAD_H_INCLUDED sl@0: //------------------------------------------------------------------------------ sl@0: #include sl@0: //------------------------------------------------------------------------------ sl@0: class Thread sl@0: { sl@0: protected: sl@0: Thread(); sl@0: virtual ~Thread(); sl@0: sl@0: private: sl@0: Thread(const Thread& other) {} sl@0: Thread& operator=(const Thread& other) { *this; } sl@0: sl@0: public: sl@0: void Start(); sl@0: virtual void Interrupt() = 0; sl@0: void Join() const; sl@0: sl@0: protected: sl@0: virtual void Run() = 0; sl@0: sl@0: private: sl@0: static DWORD WINAPI ThreadProc(LPVOID lpParam); sl@0: sl@0: private: sl@0: HANDLE m_hThread; sl@0: DWORD m_dwThreadId; sl@0: }; sl@0: //------------------------------------------------------------------------------ sl@0: #endif sl@0: //------------------------------------------------------------------------------