Vollkommen unverständliche Exception

11/11/2009 - 13:03 von Christoph Engelhardt | Report spam
Servus NG,

ich habe ungefàhr folgenden Code:

public class Parser
{
private Dictionary<Thread, bool> iWorkingThreads = new
Dictionary<Thread, bool>();


public void load()
{
int tMaxThreads = 5;
Thread tThread = null;
for (int tCounter = 0; tCounter < tMaxThreads; tCounter++)
{
tThread = new Thread(parse);
tThread.Name = "ParsingThread-" + tCounter;
tThread.IsBackground = true;
tThread.SetApartmentState(ApartmentState.STA);
tThread.Start();

iWorkingThreads.Add(tThread, true);
}
}
}

*********************************************************************
Das führt zu folgender Exception:

System.ArgumentException: Ein Element mit dem gleichen Schlüssel wurde
bereits hinzugefügt.
bei System.ThrowHelper.ThrowArgumentException(ExceptionResource
resource)
bei System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue
value, Boolean add)
bei System.Collections.Generic.Dictionary`2.Add(TKey key, TValue
value)
bei LogfileParser.Parser.load() in E:\wissen\csharp\Projekte
\LogfileParser\src\controller\Parser.cs:Zeile 77.


Was ich ziemlich unentspannt finde, weil der hinzugefügte Schlüssel ja
in jedem Schleifendurchlauf neu erzeugt wird.

Ich habe da jetzt schon einige Zeit drüber sinniert, aber ich verstehe
einfach nicht, warum es passiert.
Wàre sehr dankbar für jede Hilfe

Sonnige Grüße,
Christoph
 

Lesen sie die antworten

#1 FrankDzaebel
11/11/2009 - 13:24 | Warnen spam
Hallo Christoph,

    tThread = new Thread(parse);



wie ist 'parse' implementiert?
Mache ein minimal reproduzierbares Beispiel.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen