小编Pra*_*lla的帖子

即使在方法完成后线程如何访问局部变量?

说我有这样的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.但代码运行没有任何麻烦.根据我的理解,方法块完成后局部变量不存在.我无法得到它.

c# multithreading

10
推荐指数
2
解决办法
902
查看次数

标签 统计

c# ×1

multithreading ×1