#ifndef __ITHREAD_INTERFACE_H__ #define __ITHREAD_INTERFACE_H__ #pragma once //======================================================================================================================= /// ½º·¹µå¸¦ Æí¸®ÇÏ°Ô »ç¿ëÇϱâ À§ÇÑ Ãß»ó Ŭ·¡½º /** @author Kim Min Wook < taiyo@webzen.co.kr > @since 2004. 10. 20 @remarks - IThreadInterface¸¦ »ó¼Ó¹Þ¾Æ ±¸ÇöÇÑ Å¬·¡½º´Â ÇϳªÀÇ ½º·¹µå°¡ µÈ´Ù. - StartThread() È£Ãâ·Î ½º·¹µå¸¦ »ý¼ºÇϰí EndThread() È£Ãâ·Î ½º·¹µå¸¦ Á×ÀδÙ. @note - ½º·¹µåÀÇ Run()¸¦ ºüÁ® ³ª¿À°Ô ÇÏ´Â ÀûÀýÇÑ Ã³¸®¸¦ EndThread()¿¡ ±¸ÇöÇØ¾ß ÇÑ´Ù. @history - 2004.11.11 : utility library¿¡ Ãß°¡ */ //======================================================================================================================= namespace util { class IThreadInterface { public: IThreadInterface(void); virtual ~IThreadInterface(void); VOID SuspendThread(); VOID ResumeThread(); VOID StartThread( BOOL bSuspend = FALSE ); virtual VOID EndThread() = 0; inline HANDLE GetHandle() { return m_hThread; } protected: virtual DWORD run() = 0; static unsigned int __stdcall m_fnThread(void * pt); private: HANDLE m_hThread; }; } #endif // __ITHREAD_INTERFACE_H__