双向信号和竞赛(Two-Way Signaling and Races)
Monitor.Pulse方法的一个重要特性是它是异步执行的,这意味着调用pulse方法并不会阻塞自己等待Monitor.Pulse返回。如果任何一个线程在pulsed 对象上等待,它是不会阻塞的,换句话说,调用Monitor.Pulse对程序不会有什么作用,你可以认为Monitor.Pulse方法被忽略了。
这样Pulse提供了一个单向通信:一个 pulsing线程悄悄的向一个waiting 线程发送信号。
Pulse并不会返回一个值来告诉你waiting线程是否收到信号。
但是有时候我们需要知道waiting线程是否受到信号,例如下面的例子:
新闻热点
疑难解答