考虑传统的生产者/消费者线程处理示例。当使用者检查缓冲区大小不为零时,是否需要在等待锁定之前向其他线程发出信号?lock(_lock) while(buf.Count == 0) // Is there any need to *Monitor.Pulsepublic void produce() lock(_lock) // Produce
System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code调用上调用Monitor.PulseAll这是我不想做的,我希望能够在将项添加到队列中时进行处理。我怎样才能做到这一点?} 第二线程{ lock(items) items.Enqueue(o);
这个用于同步的程序使用了监视器,它有一个生产者、消费者和缓冲区,可以读写,我如何添加另外两个消费者(所以我在这个程序中有三个),并且程序仍然正常工作?there is one) to Monitor.Pulsethere is one) to
// become ready to execute (Started