#pragma once #include "akNetworkLinker.h" class AKNETWORK_DLLSPEC CakThreadInterface { public: CakThreadInterface(void){}; ~CakThreadInterface(void){}; virtual void threadRun()=0;//Index 0 À϶§ virtual void threadRun1(){};//Index 1 À϶§(ÇÑŬ·¡½º¿¡¼­ ¾²·¹µå 2°³ µ¹¸±¶§) virtual void threadRun2(){};//Index 2 À϶§(ÇÑŬ·¡½º¿¡¼­ ¾²·¹µå 3°³ µ¹¸±¶§) virtual void threadRun3(){};//Index 3 À϶§(ÇÑŬ·¡½º¿¡¼­ ¾²·¹µå 4°³ µ¹¸±¶§) }; enum THREADFLAG { TF_NONE, TF_READY, TF_RUN, TF_PAUSE, TF_END }; enum THREADLASTSTATE { TS_RUN, TS_PAUSE }; class AKNETWORK_DLLSPEC CakThread { public: CakThread(void); ~CakThread(void); void CreateThread(CakThreadInterface* pParent, int nThreadIndex = 0); void DeleteThread(); bool start(bool bSafe = false); bool pause(bool bSafe = false); public: void setSleepTime(int val) { m_nSleepTime = val; } int getSleepTime() const { return m_nSleepTime; } THREADFLAG getThreadFlag() const { return m_nThreadFlag; } protected: static unsigned __stdcall akThreadFunc(void* arg); protected: int m_nThreadIndex; unsigned int m_nThreadID; HANDLE m_hThread; HANDLE m_hPause; int m_nSleepTime; THREADFLAG m_nThreadFlag; THREADLASTSTATE m_ThreadLastState; CakThreadInterface* m_pParent; };