AppDomain.IsFinalizingForUnload Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, выгружен ли этот домен приложения, и были ли закрыты средой CLR объекты, которые он содержал.
public:
bool IsFinalizingForUnload();
public bool IsFinalizingForUnload ();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean
Возвращаемое значение
Значение true
, если этот домен приложения выгружен, и среда CLR начала вызов методов завершения, в противном случае — значение false
.
Комментарии
Метод завершения для объекта предоставляет возможность выполнять все необходимые операции очистки перед сбором мусора. После завершения объект доступен, но в недопустимом состоянии и, следовательно, непригодным для использования. В конце концов сборка мусора завершается и освобождает объект.
Метод завершения объекта вызывается в одной из следующих ситуаций: во время сборки мусора, при завершении работы среды CLR или при выгрузке домена приложения, содержащего объект. Метод IsFinalizingForUnload возвращается только в последнем случае; он не возвращается true
true
, если результаты завершения из обычной сборки мусора или завершения работы СРЕДЫ CLR.
Примечание
Чтобы определить, является ли завершение завершения из-за завершения работы среды CLR, используйте Environment.HasShutdownStarted свойство. Возвращается, true
если завершение происходит из-за выгрузки домена приложения или завершения работы среды CLR.
При выполнении в методе завершения во время выгрузки домена может потребоваться получить доступ к другому объекту, на который ссылается статическое поле и имеет метод завершения. Однако это невозможно сделать надежно, так как доступ к доступу к объекту, возможно, уже был завершен.
Примечание
Исключением из этого правила является Console класс, который содержит статические поля, ссылающиеся на объекты потока, но реализуется специально, поэтому вы всегда можете записывать данные в системную консоль даже во время выгрузки домена или завершения работы системы.
Используйте этот метод в методе завершения объекта, чтобы определить, выгружается ли домен приложения, содержащий объект. Если это так, вы не можете надежно получить доступ к любому объекту, который имеет метод завершения и ссылается на статическое поле.