System.Tests.EnvironmentTests.CurrentManagedThreadId_DifferentForActiveThreads C# (CSharp) Method

CurrentManagedThreadId_DifferentForActiveThreads() private method

private CurrentManagedThreadId_DifferentForActiveThreads ( ) : void
return void
        public void CurrentManagedThreadId_DifferentForActiveThreads()
        {
            var ids = new HashSet<int>();
            Barrier b = new Barrier(10);
            Task.WaitAll((from i in Enumerable.Range(0, b.ParticipantCount)
                          select Task.Factory.StartNew(() =>
                          {
                              b.SignalAndWait();
                              lock (ids) ids.Add(Environment.CurrentManagedThreadId);
                              b.SignalAndWait();
                          }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default)).ToArray());
            Assert.Equal(b.ParticipantCount, ids.Count);
        }