Galkov писал(а):
Нахрена оно там тогда вообще стоит - это только тебе известноЭто почему же

Рихтер писал(а):
Вместо EnterCriticalSection Вы можете воспользоваться;
BOOL TryEnterCriticalSection(PCRITICAL_SECTION pcs);
Эта функция никогда не приостанавливает выполнение вызывающего потока. Но возвращаемое ею значение сообщает, получил ли этот поток доступ к ресурсу. Если при ее вызове указанный ресурс занят другим потоком, она возвращает FALSE
Galkov писал(а):
Ее нет, никогда не вернетЗапусти пример, который я сделал по твоим зарисовкам, расставь debug-и и посмотри, ворачивается ли там False и сколько раз

------------ Дoбавленo в 03.03:
И еще вопрос, который уже задавался -- зачем переводить поток в режим ожидания, когда просто можно проверить доступность ресурса, а если он занят, то продолжить дальнейшую очередь событий не останавливая поток. Тут было два пути решения, либо виснем на ожидании доступности, либо продолжаем выполнять дальше свои действия по циклу и ждать, пока не освободится
------------ Дoбавленo в 03.11:
ПМСМ. Необходимо, чтобы кто-то еще просмтрел код и пример и сказал, выполнет ли данный компонент функцию защиты или нет. В данной реализации используются метод не торможения потоков и перевод их в режим ожидания, а необходимость циклического опроса состояния доступности. Это две разные концепции, и я не вижу ни за, ни против, ни против той, ни против другой, они обе имеют право на существование