奇怪的NullReference异常
Hi,有个关于.Net Framework Exception方面的情况问题请教一下各位,
这是.Net Framework 2.0中SortedDictionary.Keys的getter方法,我得到一个用户的crash report说是这里面出现的NullReferenceException
这段代码是在多线程情况下执行的,因此可能会有多个线程同时操作Dictionary的情况,但是我总觉得即使是多线程访问结果也顶多是生成多个KeyCollection对象,不至于Null Ref啊?在此诚心请教各位高手这段代码什么情况下会出现NullReferenceException? 谢谢!
public KeyCollection<TKey, TValue> Keys
{
get
{
if (this.keys == null)
{
this.keys = new KeyCollection<TKey, TValue>((SortedDictionary<TKey, TValue>) this);
}
return this.keys;
}
}
--------------------编程问答-------------------- 多线程,就不是很好说了
猜一下,
可能是竞争问题吧
多个线程请求一个对象, 如果,无法获得对象,就返回 空引用。
查一下,这个是不是线程安装的。 --------------------编程问答-------------------- 问题是系统里有没有哪个地方会置this.keys=null?找到可能执行这个地方应该就能找到原因。
另外,能否请用户也说明一个nullReferenceException的具体对象是什么?也许根本就不是keys为null。
补充:.NET技术 , .NET Framework