Environment.HasShutdownStarted 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得值,這個值表示正在卸載目前的應用程式定義域,或是正在關閉通用語言執行平台 (CLR)。
public:
static property bool HasShutdownStarted { bool get(); };
public static bool HasShutdownStarted { get; }
member this.HasShutdownStarted : bool
Public Shared ReadOnly Property HasShutdownStarted As Boolean
屬性值
true
如果正在卸載目前的應用程式域,或 CLR 正在關閉則為 ;否則為 false
。
備註
僅限.NET Framework:CLR 卸載應用程式域時,它會在該應用程式域中具有完成項方法的所有物件上執行完成項。 當 CLR 關閉時,它會在具有完成項方法的所有物件上啟動完成項執行緒。 只有在啟動完成項執行緒之後,屬性 HasShutdownStarted 才會傳回 true
。 當 屬性傳 true
回 時,您可以呼叫 AppDomain.IsFinalizingForUnload 方法來判斷正在卸載應用程式域,還是 CLR 本身正在關閉。 如果因為應用程式域正在卸載或 false
CLR 正在關閉而呼叫完成項,這個方法會傳回 true
。
如果完成項執行緒尚未啟動,屬性 HasShutdownStarted 會傳回 false
。
藉由使用這個屬性,您可以判斷是否要在最終化程式碼中存取靜態變數。 如果應用程式域或 CLR 正在關閉,您就無法可靠地存取具有最終化方法且靜態欄位所參考的任何物件。 這是因為這些物件可能已經完成。