Thread.Suspend, Garbage Collection und Sicherungspunkte
Wenn Sie für einen Thread Thread.Suspend aufrufen, nimmt das System die Anforderung einer Threadunterbrechung zur Kenntnis und lässt die Ausführung des Threads bis zum Erreichen eines Sicherungspunkts zu. Erst dann wird der Thread tatsächlich unterbrochen. Ein Sicherungspunkt für einen Thread ist ein Punkt, an dem die Garbage Collection durchgeführt werden kann.
Sobald ein Sicherungspunkt erreicht ist, stellt die Common Language Runtime sicher, dass der unterbrochene Thread keinen weiteren verwalteten Code mehr ausführt. Ein Thread, in dem kein verwalteter Code ausgeführt wird, ist für die Garbage Collection immer sicher. Die Ausführung wird fortgesetzt, bis der Thread versucht, die Ausführung von verwaltetem Code fortzusetzen.
Hinweis |
---|
Um eine Garbage Collection durchzuführen, müssen alle Threads mit Ausnahme des Threads, in dem die Garbage Collection ausgeführt wird, unterbrochen werden.Jeder Thread muss vor seiner Unterbrechung einen Sicherungspunkt erreicht haben. |
Siehe auch
Referenz
Konzepte
Automatische Speicherverwaltung