编辑:好的,找到了答案。问题是在构造函数中创建受此bug影响的对象。它应该是原型对象的深层副本,但在一个地方是在数组中复制引用,而不是将整个元素复制到新创建的对象。
在我的C#应用程序中,我有一个Parallel.For
循环。在这个循环中,我创建了一些对象,并在其上调用了一些方法。每个循环迭代都有它自己的对象,因此一个迭代破坏(某种程度上)对象不会出现问题,因此其他迭代不能使用它。
我有时(在某些非循环的循环中)得到一个异常,告诉我的对象的一个字段为空。但是,当我将鼠标悬停在线上时,在Visual Studio C#2010中设置调试器在线上抛出此异常(pic rel)
EnvManager MyEnv = Owner.EnvManager;
调试器说Owner.EnvManager对象是OK(非空)。
但是,在将MyEnv(之前指定的)与null进行比较时,下面的一行是空的!
DEBUGGER在整个时间段内停止运行,我在检查时没有执行程序执行。
只有一个问题:如何?