现在的位置: 首页 > 综合 > 正文

使用匿名方法产生的一个难发现问题

2013年07月18日 ⁄ 综合 ⁄ 共 349字 ⁄ 字号 评论关闭

先上Code:

 

代码

class Class2
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
Thread trd
= new Thread(
delegate()
{
Console.WriteLine(i);
}

);

trd.Start();
}

Console.Read();
}
}

 

可能一般大家会猜测结果将是0,1,...9,或者其他顺序,但值应该是这些。但实际运行看一下会发现,结果乱七八糟,有的数字输出多次,而且甚至10也被输出了。

正好想起之前博客园有篇文章说这个问题,赶紧搜索之,

http://www.cnblogs.com/jeffreyzhao/archive/2009/03/13/anonymous-method-false-sharing.html

【上篇】
【下篇】

抱歉!评论已关闭.