Мне было очень приятно видеть, что Delphi представила запись TMonitor в Delphi 2009, позволяющую блокировать определенные объекты в многопоточной среде. Что меня озадачило, так это методы Pulse и PulseAll этого типа записи.
Например, запись для Pulse в справке Delphi гласит: «Уведомляет следующий поток в очереди ожидания, что он сможет заблокировать указанный объект, как только вызывающий поток освободит объект».
Действительно? Что это обозначает? Я без проблем использовал TMonitor без использования Pulse. Кроме того, в некоторых случаях использования TMonitor в исходном коде Delphi никогда не используется Pulse.
Включены ли методы Pulse и PulseAll в запись Delphi TMonitor только для совместимости на уровне исходного кода с классом .NET Monitor, или они действительно служат какой-то цели?
Есть два вопроса («TMonitor.Pulse vs TMonitor.PulseAll» и "Для чего подходит модуль TMonitor в системе Delphi"), поговорим по этому вопросу, но я ищу окончательный ответ.