public void TestTerminateWaiting() { using (EntryCountingEvent inst = new EntryCountingEvent()) { bool finished = false; Task task = null; using (inst.Enter()) { task = Task.Run(() => { inst.TerminateAndWait(); finished = true; }); TimingAssert.IsFalse(5000, () => finished); } TimingAssert.IsTrue(5000, () => finished); task.Wait(); } }