在我的常量」 - 我想這就是secondCommand firstCommand‘後,纔可以稱爲’。我試着用EnterCriticalSection的工作,但問題是,從哪裏開始我的鎖 - 如果我這樣做是在構造函數(在#),和「firstCommand」(##處)後解除鎖定,並嘗試獲取再次鎖定「secondCommand」(在###)之前,它可能不是因爲在###工作,即使在鎖被鎖定 - secondCommand仍然可以稱爲 - 因爲鎖定在同一個THEAD計提壞賬(它就像調用兩次在一排「鎖定」和「鎖定」 - 不會有死鎖)。如果我在'firstCommand'(在####)之前鎖定並且在'firstCommand'(在##)之後立即釋放,當檢查鎖是否被鎖定時 - 鎖可以是未初始化的 - 這會導致問題。這裏是我的代碼:EnterCriticalSection的和CRITICAL_SECTION在Windows
myClass::myClass(){
#
threadFunction();
###
secondCommand();
}
void myClass::threadFunction(){
DWORD threadID;
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadFunc,0, 0, &threadID);
}
threadFunc(){
####
firstCommand();
##
while(true){};
}
這似乎是一個簡單的問題,但我一直在特林解決了一個小時now.Can誰能幫助?
是 - 它創造了必須在其他線程創建的項目... – kakush
@kakush - 不夠公平 - 我已經編輯我的答案來說明如何使用Windows事件對象做到這一點。 –