ein Timeout ist meines Wissens mit CriticalSections nicht realisierbar... ausser Du pollst mittels TryEnter eine gewisse Zeit lang, bis die Section entweder frei wird, oder die Zeit abgelaufen ist (nicht gerade eine schöne Lösung; viele Context-Switches für nichts und wieder nichts)...
besser wäre es, dazu ein
Mutex zu verwenden... beim "Betreten" des
Mutex mit WaitForSingleObject kannst Du auch ein Timeout definieren....
CreateMutex
WaitForSingleObject