Ich hatte angenommen, dass beim Beenden des Debuggens (z. B. durch Drücken der Schaltfläche Stopp oder Drücken von Umschalttaste + F5) jede Klasse, die einen Finalizer oder IDisposable implementiert, verwerfen würde.Code ausführen, wenn der VisualStudio-Debugger beendet wird
Ich habe einige Klassen, die IDisposable implementieren. Es gibt ein paar Dinge, die ich gerne (probiere) und tun würde, wenn die Anwendung den Debugger verlässt (oder in der Produktion abstürzt). Momentan scheint Dispose() nicht aufgerufen zu werden, noch ein Finalizer. ~MyClass(){}
Gibt es eine Möglichkeit, dies zu tun?
Wenn der Absturz nicht durch eine abfangbare Ausnahme verursacht wird, gibt es keine Garantie für Code, der nach einem Absturz ausgeführt wird. Das ist die Natur eines Anwendungsabsturzes. Etwas ist schiefgelaufen und jetzt wurde Ihr Prozess zwangsweise beendet. –
@Boo Verstanden. Aber wenn ich den Code unter mindestens einer Teilmenge der Szenarien ausführen kann, nehme ich das. – CoolUserName
Das Klicken auf die Stoppschaltfläche im Debugger entspricht dem Beenden der App durch das Betriebssystem.Es ist unzeremoniell und verdammt plötzlich, ohne Rücksicht darauf, was die aktuelle Anwendung gerade tun oder tun wird. –