サービスの開始時にデータをロードするスレッドがあります。このスレッドで、Parallel.Foreachを使用してデータセットを反復処理するメソッドを呼び出します。しかし、並列フォアラック内にある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であるため、オブジェクト参照エラー'。
どんな助けでも大歓迎です。