C# 间歇性FileHelpers构造函数NullReferenceException

C# 间歇性FileHelpers构造函数NullReferenceException,c#,.net,filehelpers,C#,.net,Filehelpers,我突然开始使用以下堆栈获取间歇性NRE: at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at FileHelpers.RecordInfo.RecordInfoFactory.Resolve(Type type) at FileHelpers.RecordInfo.Resolve(Type type) at FileHelpers.EngineBase..ctor(Ty

我突然开始使用以下堆栈获取间歇性NRE:

at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at FileHelpers.RecordInfo.RecordInfoFactory.Resolve(Type type)
at FileHelpers.RecordInfo.Resolve(Type type)
at FileHelpers.EngineBase..ctor(Type recordType, Encoding encoding)
at FileHelpers.EngineBase..ctor(Type recordType)
at FileHelpers.EventEngineBase`1..ctor(Type recordType)
at FileHelpers.FileHelperAsyncEngine`1..ctor()
...
FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData> engine = new FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData>();
这条线是:

FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData> engine = new FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData>();
任何使用间歇式的指针都会受到赞赏并表示歉意-我很难把它绑住。这是FileHelpers 2.9.9的一部分。请注意,代码通过Parallel.Invoke是多线程的。我查看了FileHelpers FileHelpers.RecordInfo.Resolve方法,它看起来至少是线程安全的,为了方便起见,我在下面介绍了它

FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData> engine = new FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData>();
非常感谢,, 皮特

FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData> engine = new FileHelperAsyncEngine<MicrosoftAdCenterGenericKeywordReportData>();

更新:我已经包装了所有调用,共有6个,每个调用都以不同的类型参数化到锁中的FileHelperAsyncEngine构造函数,并且不能再重现异常。正如我所说的,构造函数和被调用方似乎都是线程安全的。A.N.其他更新:至于它为什么突然开始发生,我刚刚意识到它正好与我从VS 2012切换到VS 2013的时间相吻合。看起来你正在从多个线程访问字典,它本身不是线程安全的。@YuvalItzchakov是的,但是使用字典的方法从一开始就被设计为线程安全的。字典是如何初始化的?