Programm schliest nicht
-
Mein Programm schliesst sich nicht.Das Fenster geht zwar zu,aber der Prozess bleibt im Taskmanager und das Studio bleibt im Debugmodus.
Das Programm enthält Threads und Datenbankverbindungen.Die Threads packe ich beim erstellen in ein Array und aborte sie am Ende um sicher zu sein das sie alle geschlossen sind und die Datenbankverbindung ist in einen statischen Objekt und ich schliesse sie vor dem Ende,
Ich habe im Programm nach "Thread" und "SqlConnection" gesucht um Threads die nicht im Array oder Datenbankverbindungen die nicht im statischen Objekt sindzu finden.Habe aber nichts gefunden ausser der Verbindung im Dataset, aber die müsste .net doch von sich aus schliessen.
Gib es sonst noch etwas was das Programm offen halten könnte?
-
Auch wenn Du ein Abort machst heisst das noch lange nicht, dass der Thread auch stirbt. Schau' Dir dazu mal die MSDN Doku an. Ich denke, dass einer Deiner Threads einfach noch nicht tot ist.
Statt dem Array für Deine Threads solltest Du lieber den Threadpool nutzen!
-
Das Programm bleibt aber ewig offen,irgendwann müsste der Thread doch sterben wen der noch offen ist.
-
Im Debugger klicke auf "Pause" und schau wo der Debugger hängen bleibt. Du kannst mit Hilfe des "Debugspeicherort" durch die Threads switschen und prüfen wo dieser gerade steht bzw. was er treibt.
-
Ich habe jetzt mal die Threadfunktionen auskommentiert und das Programm hängt am Ende immer noch.Also kann es eigentlich nicht an den Threads liegen.
-
Raten kostet Dich nur Zeit die Du mit Fehlersuche verbringen könntest.
-
Danke Knuddlbaer.Durch den Tip mit der Pause habe ich rausgefunden,das ein Thread in einen Steuerelement weitergelaufen ist.
-
Schalt mal deine Helferthreads alle auf
IsBackground = true
dann werden sie automatisch beendet wenn der Hauptthread beendet wird.