日期:2014-05-17  浏览次数:21174 次

for循环中delegate的问题
本帖最后由 vphoenix 于 2013-12-23 14:28:43 编辑

            for (int i = 0; i < 2; i++)
            {
                Thread t = new Thread(
                                    delegate()
                                    {
                                        Console.WriteLine(i);
                                    });
                t.Start();
            }

为什么这段代码的执行结果是:

2
2

谁能解释一下原因?
如果要让它打印(顺序可以无视)

0
1

该怎么修改?

------解决方案--------------------
            
for (int i = 0; i < 2; i++)
            {
                int j = i;
                Thread t = new Thread(
                                    delegate(obj)
                                    {
                                     &