说我有这样的C#方法
public void MyMethod()
{
int i = 0;
var thread = new Thread(() =>
{
Thread.Sleep(100);
if (i == 0)
{
Console.WriteLine("Value not changed and is {0}", i);
}
else
{
Console.WriteLine(" Value changed to {0}.", i);
}
});
thread.Start();
i = 1;
}
Run Code Online (Sandbox Code Playgroud)
这里的方法创建一个访问方法中创建的局部变量的线程.到访问此变量时,方法已完成,因此不应存在局部变量i.但代码运行没有任何麻烦.根据我的理解,方法块完成后局部变量不存在.我无法得到它.