0
4

1 回答 1

3

一种选择是让OnNextItem负责解锁:

// Setup as before
object monitor = new object();
queue.OnNextItem += i => { lock(monitor) { Monitor.Pulse(monitor); }};

lock (monitor)
{
    queue.Add(1);
    queue.Start();
    Assert.IsTrue(Monitor.Wait(monitor, 1000));
}

这将等待最多一秒钟OnNextItem才能被调用,如果等待超时则失败。

于 2011-03-24T15:23:00.837 回答