0
4

1 に答える 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 に答える