/// <summary> /// 多线程设置,导致空指针 /// </summary> public void Test01() { List <Student> list1 = new List <Student>() { new Student() { Name = "A", Age = 1 }, new Student() { Name = "B", Age = 2 } }; StudentTeamA teamA = new StudentTeamA(); Thread t1 = new Thread(() => { teamA.Students = list1; Thread.Sleep(3000); Console.WriteLine(teamA.Students.Count); }); t1.Start(); Thread t2 = new Thread(() => teamA.Students = null); t2.Start(); }
public static void TestThread() { StudentTeamA teamA = new StudentTeamA(); Thread t1 = new Thread(() => { teamA.Students = listStudent; Thread.Sleep(3000); Console.WriteLine(listStudent.Count); //模拟对 //集合属性进行一些运算 }); t1.Start(); Thread t2 = new Thread(() => { listStudent = null; //模拟在别的地方对list1而 //不是属性本身赋值为null }); t2.Start(); }