for (int i = 1; i < 100; i++)
{
int z = i;
ThreadPool.QueueUserWorkItem((o) =>
{
Thread.Sleep(1000);
Console.Write(z.ToString());
Console.Write(Environment.NewLine);
});
}
for (int i = 1; i < 100; i++)
{
ThreadPool.QueueUserWorkItem((o) =>
{
int z = i;
Thread.Sleep(1000);
Console.Write(z.ToString());
Console.Write(Environment.NewLine);
});
这两段代码有什么区别????
}
第二段代码打印的也不完全是100,我第一次演示第一个打印的是1,然后其他的是100,第二次运行全是100!
第二段代码会打印出99个100. 第一个会基本乱序打出 1到99。 看看closure 就会知道了。
有什么不同??为什么?
楼主你的问题都问了有2遍了啊,上次,有详细的回复了啊