public static Dictionary<int, string> aa = new Dictionary<int, string>();
private void button2_Click(object sender, RoutedEventArgs e)
{
ThreadStart ts = new ThreadStart(Test);
Thread th = new Thread(ts);
th.Start(); //开启线程执行Test
}
public void Test()
{
lock(aa)
{
aa.add(1,"bb");
Thread.Sleep(3000);
}
}
此时访问aa依然能访问到
private void button2_Click(object sender, RoutedEventArgs e)
{
ThreadStart ts = new ThreadStart(Test);
Thread th = new Thread(ts);
th.Start(); //开启线程执行Test
}
public void Test()
{
lock(aa)
{
TestLock();
}
}
public void TestLock()
{
aa.add(1,"bb");
Thread.Sleep(3000);
}
开启线程后访问TestLock()也可以
显然lock块里边的代码才会加锁,他所关联的变量依然可以访问