例如,这是否有效?
CRITICAL_SECTION cs;
::InitializeCriticalSection( &cs );
::EnterCriticalSection( &cs ); // First level
::EnterCriticalSection( &cs ); // Second level
/* do some stuff */
::LeaveCriticalSection( &cs ); // Second level
::LeaveCriticalSection( &cs ); // First level
::DeleteCriticalSection( &cs );
显然,我永远不会故意这样做,但如果这是由于函数调用导致“第一级”被调用以锁定对象以用于复杂(例如搜索)算法和“第二级”怎么办?在该对象的访问器函数中被调用?