我有一个线程在服务启动时加载数据。我在这个线程中调用了一个方法,该方法使用 Parallel.Foreach 来迭代一组数据。但是我在并行 forerach 中的 linq 查询获得了一个未设置为实例错误的对象引用。
*如果我删除 Parallel.Foreach 或删除线程,则相同的逻辑有效。*即使锁定列表也无济于事。**
loadingThread = new Thread(new ThreadStart(PreloadData));
loadingThread.IsBackground = true;
loadingThread.Start();
---------------------------------------
public static void PreloadData()
{
Parallel.ForEach(loadedIDs.Keys, indexDefId =>
{
List<FixingEvent> lst = null;
lock (loadedEvents)
{
lst = (from e in loadedEvents where e.DIVACode.Equals(indexDefId) select e).ToList();
}
---------------------------
}
我在里面的 linq 查询中遇到异常 - ' e 为 null,因此对象引用错误'。
任何帮助表示赞赏。