public virtual void TestListener() { Assert.AreEqual(0, q.Count); var latch = new CountdownEvent(5); var listener = new ClientListTest.Listener <object>(latch); var id = q.AddItemListener(listener, true); var t1 = new Thread(delegate(object o) { for (var i = 0; i < 5; i++) { if (!q.Offer("event_item" + i)) { throw new SystemException(); } } }); t1.Start(); Assert.IsTrue(latch.Wait(TimeSpan.FromSeconds(5))); q.RemoveItemListener(id); }