Laden...

Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein

Erstellt von DjBepy vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.818 Views
D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren
Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein

Ahoi 😃

Ich habe ein Prozess-Steuerungs-Software mit GUI gebaut. Wenn ich das Ganze im Febug-Modus von VS.NET 2010 laufen lasse, rennt die ohne Probleme.

Baue ich jetzt ein Realese und starte das auf div. Rechnern unter div. Usern (Win XP, User haben Admin-Rechte) passiert es laufend, das die Form einfriert, wenn se mal ne Zeit lang im Hintergrund liegt/minimiert ist und dann wieder in Fokus geholt werden soll.

Gibt es da bekannte Ursachen für? Wenn ich dem User VS installiere und das Ganze wieder im Debug-Modus starte, läuft es ohne Probleme 😦

*Machts gut und danke für den vielen Fisch*

F
10.010 Beiträge seit 2004
vor 13 Jahren

Dann hast Du raceconditions, die durch optimierungen passieren.

Gibt es diese Frezzes auch wenn du nur eine Debugversion erzeugst, ohne VS.NET ?

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Ja, leider ist es egal ob ich ne Release- oder ne Debug-Version baue, das Ergebniss ist leider das Gleiche . . .

*Machts gut und danke für den vielen Fisch*

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo DjBepy,

können trotzdem Race Conditions sein. Wenn du in deiner Anwendung richtig synchronisierst und alles in [FAQ] Warum blockiert mein GUI? und [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke) beachtest, sollte es auch funktionieren.

herbivore

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Ahoi 😃

Danke für den Hinweis.

Wenn Threads bzw. der BackgroundWorker genutzt wird, läuft alles Invoke.

Das komische an der Sache ist, das im Hintergrund nichts läuft. Teilweise ist aus der Hauptform einfach eine neue Form geöffnet, teilweise nicht.

Es wird dann vom User an CSV-Dateien gearbeitet, die ausm Explorer heraus geöffnet wurden. Nach der Bearbeitung will der User wieder zurück ins Programm, um eine neue Verarbeitung zu starten & PENG, geht nicht, Fom sind eingefroren.

Hatte schon überlegt ob es an der Browser-Komponente liegt, die ich als Explorer missbrauche & der versucht was zu aktuallisieren. Komplett raus genommen, gleiches Phänomen.

Auch habe ich die Funktionen zur Verbindung mit der DB in Try-catch gepackt, falls er versucht beim Focus die DataSource der DataDridView zu aktuallisieren, die Verbindung in ein Timeout gelaufen ist & er es nicht hin bekommt die neu aufzubauen. Hilft auch nicht.

Was mich ja so stuzig macht, ist dass es im DM vom VS ohne Probs rennt & gebaut laufend friert 😦

*Machts gut und danke für den vielen Fisch*

Gelöschter Account
vor 13 Jahren

Da hilft nur exzessives logging, 2 Kaffee und zeit fürs Log-lesen.

Am besten bekommt man das im nachhinein mit AOP mitteln hin.

156 Beiträge seit 2010
vor 13 Jahren

etwas Quellcode könnte zur Lösung beitragen

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Ich habe jetzt am Anfang jeder Funktion die Funktion hinzugefügt, die den aktuellen Funktionsnamen ins Logbuch schreibt . . . so habe ich vielleicht ein Anhaltspunkt, ob es immer nach Ausführen einer bestimmten Funktion ist . . .

@mogel: Gerne, aber meine Hauptform hat 2659Zeilen Code, ich glaube, das sprengt etwas den Rahmen 😉

*Machts gut und danke für den vielen Fisch*

U
1.688 Beiträge seit 2007
vor 13 Jahren

Weitere Möglichkeit: VS mit hängendem Prozess verbinden und Threads analysieren

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Wie kann ich VS sagen, er soll sich in ein laufendes Programm klemmen? Es kommt ja keine Fehlermeldung, so dass ich über Details oder so gucken könnte, es friert ja einfach ein & gut is . . . .

*Machts gut und danke für den vielen Fisch*

U
1.688 Beiträge seit 2007
vor 13 Jahren

Menü "Debuggen" - "An Prozess anhängen"

Gelöschter Account
vor 13 Jahren

aber meine Hauptform hat 2659Zeilen Code,

hm...
habe ich schon öfters gesehen und jedes mal war es falsch.
Splitte die Funktionalitäten... hau alles in klassen, was zusammengehört und bau dir nicht so einen Monolithen...
Dann findet man auch den Fehler leichter.

D
DjBepy Themenstarter:in
209 Beiträge seit 2006
vor 13 Jahren

Ich habe schon versucht so viel wie möglich zusammen zu fassen. Diese Form hat halt nur dutzende von Buttons/Menüs + Sichten und vieles wird über ein BackgroundWorker abgefrühstückt, damit die Form nicht einfriert 😉

Habe jetzt begonnen alle Zugrife auf irgendwelche Form-Elemente zu invoken und logge fleißig mit . . . vielleicht finde ich den schwarzen Peter ja auf die Art & Weise . . .

*Machts gut und danke für den vielen Fisch*

76 Beiträge seit 2008
vor 13 Jahren

Ich versuche mal weiter zu helfen... Konntest du den Fehler finden?
Im Debug-Modus, kannst du dann im Fenster "Ausgaben" irgendwelche Letzte Chance-Exceptions finden? Kann möglicherweise auch daran liegen 😃

Mit freundlichem Gruß
Dennis Ziolkowsi