SDC C-Project CF Review 프로그램
LYW
2021-08-09 b354c153b0074e5d54371bc05b12edbe8e613a19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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;
 
};