ich hab ein Tool welches mehrere unbekannte DLLs laden kann, die aber mit meinem Interface übereinstimmen müssen.
In einen Eigenen Thread werden die DLL's geladen und mehrere Funktionen werden aufgerufen.
Nun kommt es aber ab und zu vor (Ja nicht immer, bei ca. 1 von 5 Programm-Starts), dass wenn ich die Rückgabewerte in einen Dictionary einfüge eine NullReferenceException auftritt.
Was wirklich interessant ist das:
1. Die NullReferenceException nur ab und zu kommt -> Der Programmablauf ist aber vollkommen identisch und ein User kann noch nicht eingreifen, da der Code mit dem Form_Load Event ausgeführt wird.
2. Wenn ich die Variablen mir anschaue ist keine der Variablen NULL.
3. Ich füge vier Rückgabewerte in vier verschiedene Dictionaries ein und der Fehler scheint bei einen beliebigen Dictionary aufzutreten... mal ist es das erste, dann wieder das dritte.
if (plugin != null)
{
if (!plugins.ContainsKey(FileName))
plugins.Add(FileName, plugin); //Fehler hier
if (!pluginInfos.ContainsKey(FileName))
pluginInfos.Add(FileName, plugin.GetPluginInfo()); //Fehler hier
if (!pluginButtonTexts.ContainsKey(FileName))
pluginButtonTexts.Add(FileName, plugin.GetButtonText()); //Fehler hier
Control c = plugin.GetControl();
if (!pluginControls.ContainsKey(FileName))
pluginControls.Add(FileName, c); //Fehler oder hier
}
Mir ist vollkommen schleierhaft wie ich eine Exception bekommen kann wenn keiner der Werte NULL ist.
ich hoffe jemand von euch hat eine Idee woran es liegen könnte, den ich könnte nach ewigen Debuggen nichts entdecken.
Gruß Crone