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
されるときに、アプリケーション ドメインがアンロードされているか、CLR 自体がシャットダウンしているかを、メソッドを呼び出 AppDomain.IsFinalizingForUnload すことによって判断できます。 このメソッドは、 true
アプリケーション ドメインがアンロードされているためにファイナライザーが呼び出された場合、または false
CLR がシャットダウンしている場合に返されます。
このプロパティは HasShutdownStarted 、 false
ファイナライザー スレッドが開始されていない場合に返されます。
このプロパティを使用すると、終了コードで静的変数にアクセスするかどうかを決定できます。 アプリケーション ドメインまたは CLR がシャットダウンしている場合、最終処理メソッドを持ち、静的フィールドによって参照されているオブジェクトに確実にアクセスすることはできません。 これは、これらのオブジェクトが既に完成している可能性があるためです。