using MultiThreadingStudy.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MultiThreadingStudy.xUnitTest { /// /// 线程的本地存储 /// public class ThreadLocalStorageTest { private readonly ITestOutputHelper output; public ThreadLocalStorageTest(ITestOutputHelper outputHelper) { output = outputHelper; } [Fact] public void Computer_Test() { Computer computer = new Computer(); List threads = new List() { new Thread(new ThreadStart(computer.SumCount)) { Name = "thread_a" }, new Thread(new ThreadStart(computer.SumCount)) { Name = "thread_b" }, }; foreach (Thread thread in threads) { thread.Start(); } foreach (Thread thread in threads) { thread.Join(); } output.WriteLine($"调用线程 TotalCount = " + Computer.TotalCount); //不严谨:应该是<= Assert.True(Computer.TotalCount < computer.LoopNumber * threads.Count); } } }