Solución:
La cantidad de recursos de Windows de un tipo específico que un proceso podría La asignación está técnicamente restringida solo por la cantidad de memoria virtual disponible para un proceso. Que puede ser un número bastante grande, especialmente en la versión de 64 bits de Windows. Algunos de estos recursos se extraen de un montón interno del que también se retiran todos los demás procesos. Todavía es un número muy grande si Windows permitiera uno proceso lo consume todo.
Lo que, por supuesto, no tiene sentido, nunca se debe permitir que un proceso se trague todos los recursos disponibles. Que es lo que hace una cuota, establece un límite superior al número contado de recursos de un cierto tipo. Los ejemplos comunes son 10,000 ventanas, 10,000 objetos GDI, 10,000 identificadores. No todos son números redondos agradables como este por cierto.
Se necesitaría saber más sobre lo que hace su llamada PostMessage (), pero una suposición razonable es que está empujando el tamaño de la cola de mensajes más allá de la cuota. Nuevamente, un recurso que técnicamente solo se limita al tamaño de la memoria virtual disponible. Pero prácticamente debería quedar bien al sur de eso. Si es preciso, está publicando mensajes más rápido de lo que se pueden consumir, se requiere limitación. Que esto sucede en el exacto El tiempo que su programa está terminando sugiere que podría ser necesaria otra explicación. Un problema de orden de cierre de hilo, tal vez.
Según MSDN:
Hay un límite de 10,000 mensajes publicados por cola de mensajes. Este límite debería ser suficientemente grande. Si su aplicación excede el límite, debe rediseñarse para evitar consumir tantos recursos del sistema. Para ajustar este límite, modifique la siguiente clave de registro.
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindowsUSERPostMessageLimit
El valor mínimo aceptable es 4000.