例如,這是否有效?它是否適用於多層次的關鍵部分?
CRITICAL_SECTION cs_A;
CRITICAL_SECTION cs_b;
::InitializeCriticalSection(&cs_A);
::InitializeCriticalSection(&cs_B);
::EnterCriticalSection(&cs_A); // First level
/* do some stuff with A */
::EnterCriticalSection(&cs_B); // Second level
/* do some stuff with A and B */
::LeaveCriticalSection(&cs_B); // Second level
/* do some stuff with A */
::LeaveCriticalSection(&cs_A); // First level
::DeleteCriticalSection(&cs_A);
::DeleteCriticalSection(&cs_B);
我想用兩個關鍵部分保護兩段代碼。 我可以這樣做嗎?
可能重複: Is it valid to nest a critical section?
出於好奇:爲什麼不使用C++ 11併發庫? –