public void ConsumeSyncFromMultipleThreads()
        {
            AsyncCollection <int> collection = new AsyncCollection <int>();
            int t1Counter = 0;
            int t2Counter = 0;

            var t1 = Task.Run(() =>
            {
                foreach (var item in collection.GetConsumingEnumerable())
                {
                    t1Counter++;
                }
            });

            var t2 = Task.Run(() =>
            {
                foreach (var item in collection.GetConsumingEnumerable())
                {
                    t2Counter++;
                }
            });

            for (int i = 0; i < 1000; i++)
            {
                collection.Add(i);
            }

            collection.CompleteAdding();

            t1.Wait();
            t2.Wait();

            Assert.IsTrue(t1Counter > 400);
            Assert.IsTrue(t2Counter > 400);
        }