使用匿名方法产生的一个难发现问题
先上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