static void Main(string[] args)
{
test p = new test();
new Thread(() => p.SayHello("Thread One")).Start();
new Thread(() => p.SayHello("Thread Two")).Start();
}
则:
class test
{
public void SayHello(string data)
{
int i = 0;
while (i < 50)
{
Console.WriteLine("Hello from " + data);
i++;
}
}
}
为什么第二个线程不会重置变量i
为0?并弄乱它在第一个线程上运行的while循环?
同步调用这些方法并没有什么不同。当一个线程(任何线程)进入方法时,局部变量只能在方法中使用。如果它们被吊起来,那么它就变成另一个故事了。 –