我有下面的代码产生不一致的输出。
string text = "t1";
new Thread ( () => Console.WriteLine (text) ).Start();
//Thread.Sleep(1);
text = "t2";
new Thread ( () => Console.WriteLine (text) ).Start();
有时它会产生 t1 和 t2,有时它会产生双倍的 t2。我现在在想的,是这样的。当它的输出为 double t2 时,第一个线程捕获的变量值为 t2,因为它是在最后一个变量赋值之后开始的。我对吗?
注意:我在慢速机器上运行此代码。