? Me complació mucho que Delphi introdujera el registro de TMonitor en Delphi 2009, permitiéndole bloquear objetos específicos en un entorno multiproceso. Lo que me ha desconcertado es los métodos Pulse y PulseAll de este tipo de registro.En Delphi, ¿qué hacen realmente System.TMonitor.Pulse y TMonitor.PulseAll en realidad
Por ejemplo, la entrada para la ayuda de Pulse en Delphi indica "Notifica el siguiente hilo en la cola de espera que podrá bloquear el objeto especificado tan pronto como el hilo que llama libere el objeto".
¿De verdad? Qué significa eso? He usado TMonitor sin usar Pulse sin problemas. Además, algunos de los usos de TMonitor en la fuente de Delphi nunca usan Pulse.
¿Los métodos Pulse y PulseAll solo están incluidos en el registro TMonitor de Delphi para compatibilidad de nivel de fuente con la clase .NET Monitor, o realmente sirven para un propósito?
Hay dos preguntas ("TMonitor.Pulse vs TMonitor.PulseAll" y "What is TMonitor in Delphi System unit good for") que tratan este tema, pero estoy buscando una respuesta definitiva.
¿Se ha corregido TMonitor en XE2? –
@David, disculpe mi ignorancia, pero ¿qué fue/está mal con eso? – Johan
@johan Aparentemente Wait and Pulse no funciona correctamente. Muchos blogs acerca de esto hace un par de meses de Chris Rolliston, Primoz, Eric Grange, etc. –