1 に答える
3
1 つのオプションは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));
}
これは、呼び出されるまで最大 1 秒待機しOnNextItem
、待機がタイムアウトすると失敗します。
于 2011-03-24T15:23:00.837 に答える