DelphiがDelphi2009でTMonitorレコードを導入し、マルチスレッド環境で特定のオブジェクトをロックできるようになったことを非常に嬉しく思います。私を困惑させたのは、このレコードタイプのPulseメソッドとPulseAllメソッドです。
たとえば、DelphiのヘルプのPulseのエントリには、「待機キュー内の次のスレッドに、呼び出し元のスレッドがオブジェクトを解放するとすぐに、指定されたオブジェクトをロックできるようになることを通知します」と記載されています。
本当に?どういう意味ですか?私は問題なくPulseを使用せずにTMonitorを使用しました。さらに、DelphiのソースでのTMonitorの使用の一部は、Pulseを使用しません。
PulseメソッドとPulseAllメソッドは、.NET Monitorクラスとのソースレベルの互換性のためにDelphiのTMonitorレコードにのみ含まれていますか、それとも本当に目的を果たしていますか?
この問題を説明する2つの質問(「TMonitor.PulseとTMonitor.PulseAll」および「DelphiシステムユニットのTMonitorは何に適しているか」)がありますが、私は決定的な答えを探しています。