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

先上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

posted @ 2010-03-23 17:04  彷徨......  阅读(180)  评论(0编辑  收藏  举报