Example #1
0
        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);
        }