Operating system 二次进入临界段

Operating system 二次进入临界段,operating-system,wait,critical-section,Operating System,Wait,Critical Section,这个代码正确吗 我只有一个线程,我第二次进入临界区而没有离开它,我希望我会无限期地等待,但我没有等待就进入了 int var = 0; CRITICAL_SECTION cs; InitializeCriticalSection(&cs); EnterCriticalSection(&cs); var = 10; EnterCriticalSection(&cs); var = 20; DeleteCriticalSection(&cs); 如果你

这个代码正确吗

我只有一个线程,我第二次进入临界区而没有离开它,我希望我会无限期地等待,但我没有等待就进入了

int var = 0;
CRITICAL_SECTION cs;    
InitializeCriticalSection(&cs);

EnterCriticalSection(&cs);
var = 10; 
EnterCriticalSection(&cs);
var = 20;

DeleteCriticalSection(&cs);

如果你只有一个线程,你怎么能认为你的线程会无限期地等待呢?一个线程可以无限期地等待,没问题。在这种情况下不会发生这种情况,因为Windows CS允许递归锁定。