我很高兴看到 Delphi 在 Delphi 2009 中引入了 TMonitor 记录,允许您在多线程环境中锁定特定对象。令我困惑的是这种记录类型的 Pulse 和 PulseAll 方法。
例如,Delphi 帮助中的 Pulse 条目指出“通知等待队列中的下一个线程,一旦调用线程释放对象,它将能够锁定指定对象。”
真的吗?这意味着什么?我在没有使用 Pulse 的情况下使用了 TMonitor,没有任何问题。另外,在Delphi的源码中对TMonitor的一些使用从未使用过Pulse。
Pulse 和 PulseAll 方法是否仅包含在 Delphi 的 TMonitor 记录中以实现与 .NET Monitor 类的源代码级兼容性,或者它们真的有目的吗?
有两个问题(“TMonitor.Pulse vs TMonitor.PulseAll”和“Delphi System unit 中的 TMonitor 有什么用处”)说明了这个问题,但我正在寻找一个明确的答案。