public void AsyncDelegateThreading2() { //Arrange var x = new GeneralAlgorithm(123); Trace.WriteLine($"[{Environment.CurrentManagedThreadId}] Arrange {DateTime.Now.ToString(Constant.PrecisionFormat)}"); //Act for (int k = 0; k < 70; ++k) { x.AddResultInTheBackground(k); } Thread.Sleep(4000); //Assert Trace.WriteLine($"[{Environment.CurrentManagedThreadId}] Assert {DateTime.Now.ToString(Constant.PrecisionFormat)}"); var results = x.Results.ToList(); results.ForEach(_ => Trace.WriteLine(_)); Assert.IsTrue(results.All(_ => !_.StartsWith($"[{Environment.CurrentManagedThreadId}]"))); }
public void AsyncDelegateThreading3() { //Arrange int minW, minIO, minAvailW, maxW, maxIO, maxAvailIO; ThreadPool.GetMinThreads(out minW, out minIO); ThreadPool.GetMaxThreads(out maxW, out maxIO); ThreadPool.GetAvailableThreads(out minAvailW, out maxAvailIO); Trace.WriteLine($"ProcessorCount: {Environment.ProcessorCount} | {nameof(minW)}:{minW} |{nameof(minIO)}:{minIO} | {nameof(maxW)}:{maxW} | {nameof(maxIO)}:{maxIO} | {nameof(minAvailW)}:{minAvailW} | {nameof(maxAvailIO)}:{maxAvailIO}"); var x = new GeneralAlgorithm(321); Trace.WriteLine($"[{Environment.CurrentManagedThreadId}] Arrange {DateTime.Now.ToString(Constant.PrecisionFormat)}"); //Act for (int k = 0; k < 70; ++k) { x.AddResultInTheBackground2(k); } Thread.Sleep(4000); //Assert Trace.WriteLine($"[{Environment.CurrentManagedThreadId}] Assert {DateTime.Now.ToString(Constant.PrecisionFormat)}"); var results = x.Results.ToList(); results.ForEach(_ => Trace.WriteLine(_)); Assert.IsTrue(results.All(_ => !_.StartsWith($"[{Environment.CurrentManagedThreadId}]"))); }