Statische Finalizer
Was ist der richtige Weg, um einige statische finallization?
Es ist keine statische Destruktor. Die AppDomain.DomainUnload
Ereignis wird nicht ausgelöst, in der Standard-domain. Die AppDomain.ProcessExit
event teilt sich die Gesamtzeit von drei Sekunden (default-Einstellungen) zwischen alle event-Handler, so ist es nicht wirklich brauchbar.
InformationsquelleAutor der Frage Michael Damatov | 2008-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie im Prinzip nicht. Design Ihren Weg, um es im vollen Umfang möglich.
Vergessen Sie nicht, dass ein Programm immer abrupt beendet, trotzdem - jemand zieht aus der Steckdose als das offensichtlichste Beispiel. Also alles, was Sie tun werden "best effort" - in dem Fall würde ich sicherlich hoffedass
AppDomain.ProcessExit
wäre gut genug.Was müssen Sie tun, in Ihrem Fall zu?
InformationsquelleAutor der Antwort Jon Skeet
Habe ich es probiert:
Scheint es zu funktionieren genau die gleiche Weise wie die
AppDomain.ProcessExit
Veranstaltung: der finalizer wird ca. drei Sekunden...InformationsquelleAutor der Antwort Michael Damatov
Ich würde Fragen, was Sie laden in Ihre statischen Methoden, die freigegeben werden müssen. Ich sicherlich würde nicht empfehlen, diese Dinge zu tun, die in einer statischen Methode.
Sagte, Ihre statische Methode instantiieren ein Objekt, das eine abschließen-Methode.
InformationsquelleAutor der Antwort Ady
Zwei Lösungen, die den Sprung in den Sinn:
InformationsquelleAutor der Antwort Jason Baker
Port Michael Damatov Antwort (C#), die basierend auf Herfried K. Wagner. (VB.NET) hier ist C++/CLI version:
P. S. Genau wie der Anwendungsdomäne.ProcessExit Methode ist, man kann nicht aufgerufen werden, wenn der Prozess beendet wird (Task-Manager zum Beispiel).
Ein Wort der Vorsicht ist, dass, wenn MyClass ist die generische (Vorlagen), die Annahme, dass sich die statische Konstruktor und die statische Destruktor aufgerufen wird, nicht mehr als einmal pro Anwendung Ausführung ist nicht mehr gültig.
InformationsquelleAutor der Antwort ILIA BROUDNO