System.Collections.Tests.Queue_SyncRootTests.SyncRoot C# (CSharp) Method

SyncRoot() private method

private SyncRoot ( ) : void
return void
        public void SyncRoot()
        {
            var queueMother = new Queue();
            for (int i = 0; i < NumberOfElements; i++)
            {
                queueMother.Enqueue(i);
            }
            Assert.Equal(queueMother.SyncRoot.GetType(), typeof(object));

            var queueSon = Queue.Synchronized(queueMother);
            _queueGrandDaughter = Queue.Synchronized(queueSon);
            _queueDaughter = Queue.Synchronized(queueMother);

            Assert.Equal(queueMother.SyncRoot, queueSon.SyncRoot);
            Assert.Equal(queueSon.SyncRoot, queueMother.SyncRoot);

            Assert.Equal(queueMother.SyncRoot, _queueGrandDaughter.SyncRoot);
            Assert.Equal(queueMother.SyncRoot, _queueDaughter.SyncRoot);

            Task[] workers = new Task[NumberOfWorkers];
            Action action1 = SortElements;
            Action action2 = ReverseElements;
            for (int i = 0; i < NumberOfWorkers; i += 2)
            {
                workers[i] = Task.Run(action1);
                workers[i + 1] = Task.Run(action2);
            }

            Task.WaitAll(workers);
        }