Hallo zusammen,
ich habe ein ziemlich fragwürdiges Problem.
Ich habe einen BackgroundWorker, der eine Liste von Objekten durchläuft und auf diesen Objekten Methoden ausführt.
Wenn ich nun die in der angehängten Grafik dargestellte Schleife durchdebugge, ist alles in Ordnung. Entferne ich allerdings den Debug-Punkt beendet die Schleife nicht und ich laufe in die dargestellte Ausnahme.
Ich habe es ebenso mit foreach probiert, das hat wiederum dazu geführt, dass beim Debuggen alles in Ordnung war, ohne den Debugpunkt wurde zweimal die Methode auf dem ersten Objekt ausgeführt ...
Ich hoffe, ihr findet eine Erklärung dazu!?
Hallo Binärathlet,
sieht ganz nach [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke) aus.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Danke für das Beispiel. Ich habe schon länger nach einem Beispiel für den programmierfehler "access to modified closure" gesucht 😃
Die Behebung ist relativ einfach. Kopiere "i" in eine variable aus dem inner Scope oder noch besser.. übergebe sie der aufgerufenen Methode.
@zero_x:
wie kommst du auf das?
Hallo,
die Fehlermeldung ist eindeutig und schau dir die Werte im Fenster "Überwachen 1" an -> da siehst du den Grund und Jack hat oben die Hintergründe geliefert.
Was ist denn das für eine Mega-Klasse mit 1900 Zeilen Code?
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Hallo zero_x,
tatsächlich, 'BeginInvoke' durch 'Invoke' ersetzt und es läuft tadellos 😁
Also ich muss jetzt schon sagen, das dieses Forum hier echt super ist! Großes Dankeschön und großes Lob an alle, weiter so! 👍 👍
edit:
@JAck30lena: du hast recht, ein Sammelmonolith für Tests auf einem größeren Projekt 😉
Hallo,
Was ist denn das für eine Mega-Klasse mit 1900 Zeilen Code?
One-File-Project 😉
Solche Probleme hab ich auch ab und an. Ich versuche es dann mit Debug-Ausgaben und schaue nach ob sie in der erwarteten Reihenfolge kommen. Gibt vielleicht schönere Methoden, ist aber einfach 😉
So traurig es auch ist, wir haben hier in der Firma ein altes Projekt übernommen und in diesem Projekt gibt es eine Klasse mit ca. 8.000 Zeilen. So wer bietet mehr? 8.000 zum ersten... 😃
Ich hatte in einem Projekt eine Klasse mit über 500k Zeilen. Damit habe ich dann wohl auch schon gewonnen und damit ist dieses Thema auch schon bitte begraben, weil es nicht zum Topic passt. siehe: Coding Styles Horror