public void TestAsyncPop() { ThreadSafeStack <int> integers = new ThreadSafeStack <int>(); for (int i = 3; i < 1000000; ++i) { integers.Push(i); } Task t1 = Task.Run( () => { while (!integers.IsEmpty()) { integers.Pop(); } } ); Task t2 = Task.Run( () => { while (!integers.IsEmpty()) { integers.Pop(); } } ); Task.WaitAll(t1, t2); Assert.AreEqual(0, integers.Count); }