複製** **如下:
// 給主視窗的通知訊息
#define wm_cutterstart wm_user + 100 // wparam == *** lparam==***x
/*
外面呼叫這個類時,只需要isrunning() start***(***) suspend***() resume***() stop***()
*/
/*
m_bcontinue在真正的工作**dosomething中檢測,在退出和類析構時設為false,在reset時和構造時設為true 標誌內部是否繼續工作
m_brunning 在start*** suspend*** resume*** 中檢測,在構造時和reset時設為false,在_threadentry得到waitforsingleobject時設為true
外部通過isrunning得到是否正在執行
*/
class cmyclass
;
// 建構函式
cmyclass(hwnd hwndnotify); //接收視窗控制代碼
&nbsychunp;
// 屬性 對外開放
bool isrunning() const //對外
// 操作 對外開放
bool start***(***);
bool suspend***();
bool resume***();
void stop***();
// 具體實現
public:
~cfilecutter(); //析構
protected:
// 重置引數資訊和狀態標誌
void reset();
// 真正的工作核心**
void dosomething();
// 工作執行緒
uint friend _threadentry(lpvoid lpparam);
// 狀態標誌
bool m_bcontinue; // 是否繼續工作 dosomething中檢測,如果在dosomething中不m_bcontinue,就中止工作
bool m_brunning; // 是否處於工作狀態
// 同步以上兩組資料
critical_section m_cs; // data gard
private:
//ychun 物件的生命週期全域性有效的資料
hwnd m_hwndnotify; // 接受訊息通知事件的視窗控制代碼
handle m_hworkevent; // 通知開始工作的事件物件控制代碼
cwinthread* m_pthread; // 工作執行緒
bool m_bsuspend; // 暫停標誌
bool m_bexitthread; // 退出標誌
};
//構造
cmyclass::cmyclass()
// 內部工作執行緒
uint _threadentry(lpvoid lpparam)
return 0;
}
void cmyclass::reset()
cmyclass::~cmyclass()
bool cmyclass::start***(***)
bool cmyclass::suspend***()
return true;
}
bool cmyclass::resume***()
return true;
}
void cmyclass::stop***()
//-------------------------實現**-------------------------//
//真正的工作**
void cmyclass::dosomething()
// 通知使用者,工作完成
::postmessage(m_hwndnotify, wm_cutterstop, exitsuccess, ncompleted);
本文標題: c++封裝執行緒類的實現方法
本文位址:
caffe 執行緒封裝類
test.hpp ifndef internal thread hpp define internal thread hpp include include using boost shared ptr namespace boost class internalthread virtual int...
C thread 執行緒封裝類
思路是這樣的,寫乙個thread抽象類,有函式virtual void run 0,類中呼叫window api函式createthread 建立並啟動執行緒,所有執行緒都執行同乙個靜態函式threadfunction lpvoid param param傳遞執行緒物件的this指標 createt...
C語言封裝執行緒與日誌類
折騰了兩天,查半天資料還是不如自己動動手。如題這是兩個很常見的問題,雖然很多語言都封裝了執行緒,但是讓自己寫乙個還是比較麻煩的,這兒做乙個簡單的demo,大家可以去完善。日誌工具包 define max msg text 1024 10 define max msg title 1024 日誌訊息結...