Monitor.PulseAll(Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通知所有的等待线程对象状态的更改。
public:
static void PulseAll(System::Object ^ obj);
public static void PulseAll (object obj);
static member PulseAll : obj -> unit
Public Shared Sub PulseAll (obj As Object)
参数
- obj
- Object
发送脉冲的对象。
例外
obj
参数为 null
。
调用线程不拥有指定对象的锁。
注解
当前在指定对象上拥有锁的线程调用此方法,以向等待获取对象锁的所有线程发出信号。 发送信号后,等待线程将移动到就绪队列。 调用 PulseAll
的线程释放锁时,就绪队列中的下一个线程获取锁。
请注意,同步对象包含多个引用,包括对当前保存锁的线程的引用、对就绪队列的引用、包含已准备好获取锁的线程以及对等待队列的引用,该引用包含正在等待通知对象状态更改的线程。
必须在同步的代码块内调用该方法PulsePulseAll
和Wait方法。
该方法 Pulse 的注释说明了当没有线程正在等待时调用会发生什么 Pulse 情况。
若要向单个线程发出信号,请使用 Pulse
该方法。