Hallo an alle Forenmitgleider,
ich habe zur Zeit ein kleines Problem mit einer Liste und Multithreading, aber lasst es mich kurz ein wenig ausführlicher beschreiben:
Ich habe einen TCP Listener, der auf den Port 3000 hört und dort abwartet, bis eine bestimmte Information reinkommt.
Dieser Listener schreibt die erhaltenen Informationen in ein Objekt und legt dieses in einer Liste ab. (Thread 1)
Dieser Thread läuft natürlich dauerhaft und wartet IMMER auf Informationen die auf diesem Port eintreffen.
Nun möchte ich diese Liste automatisch durchgehen und zu einer bestimmten Zeit einen weiteren Event auslösen. Der Zeitpunkt, zu welchem der Event ausgelöst werden soll, ist in dem Objekt gespeichert.
Nun zu meinem Problem:
Ich durchlaufe diese Liste mit einer Foreach-Schleife und diese führt wohl zu Fehler, ich weiß mir aber leider nicht zu helfen, wieso genauer dieser Fehler auftritt und wie ich diesen umgehen kann.
Anbei der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| private void readList() { System.Diagnostics.Debug.WriteLine("reader");
while(true) { foreach (var aufnahmen in aufList) { System.Diagnostics.Debug.WriteLine(DateTime.UtcNow.ToUniversalTime().ToString("yyyy''MM''dd''HH''mm"));
if (DateTime.UtcNow.ToString() == aufnahmen.startTime) { System.Diagnostics.Debug.WriteLine("Aufnahme gefunden"); }
System.Diagnostics.Debug.WriteLine("Schleife durchlaufen"); } } } |
Und hier der Fehler:
Quelltext
1:
| Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in mscorlib.dll aufgetreten. |
Beste Grüße,
Marian
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Moderiert von
Th69: Beitragsformatierung überarbeitet: überflüssige Leerzeilen entfernt