Весьма вероятно, что существует ограничение на то, сколько объектов синхронизации - семафоров, событий, критических секций - может обрабатывать один и все процессы на данном компьютере. Что именно это ограничение?
Для окон ограничение процесса на дескрипторы ядра (семафоры, события, мьютекс) составляет 2^24.
2^24
С MSDN :
Обработчики объекта ядра обрабатываются конкретный. То есть процесс должен либо создайте объект, либо откройте существующий объект для получения ядра дескриптор объекта. Лимит на процесс на дескрипторах ядра это 2 ^ 24 . Тем не мение, ручки хранятся в выгружаемом пуле, поэтому фактическое количество ручек вы может создать на основе доступных объем памяти. Количество ручек, которые вы можно создать на 32-битной Windows значительно ниже, чем 2 ^ 24.
Зависит от квоты, доступной для процесса. Я думаю, что в XP он установлен на 10000 на процесс, но он может расти. Я не уверен, каков верхний предел.
Только что снова проверил, ограничение 10000 для дескрипторов GDI, а не для объектов ядра.