Environment.HasShutdownStarted プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のアプリケーション ドメインがアンロードされているか、共通言語ランタイム (CLR) がシャットダウン中であるかを示す値を取得します。
public:
static property bool HasShutdownStarted { bool get(); };
public static bool HasShutdownStarted { get; }
static member HasShutdownStarted : bool
Public Shared ReadOnly Property HasShutdownStarted As Boolean
プロパティ値
true 現在のアプリケーション ドメインがアンロードされている場合、または CLR がシャットダウンしている場合。それ以外の場合は false。
注釈
.NET Framework のみ: CLR がアプリケーション ドメインをアンロードすると、そのアプリケーション ドメインにファイナライザー メソッドを持つすべてのオブジェクトでファイナライザーが実行されます。 CLR がシャットダウンすると、ファイナライザー メソッドを持つすべてのオブジェクトでファイナライザー スレッドが開始されます。
HasShutdownStarted プロパティは、ファイナライザー スレッドが開始された後にのみtrueを返します。 プロパティが trueを返すときに、 AppDomain.IsFinalizingForUnload メソッドを呼び出すことによって、アプリケーション ドメインがアンロードされているか、CLR 自体がシャットダウンされているかを判断できます。 このメソッドは、アプリケーション ドメインがアンロード中であるためにファイナライザーが呼び出された場合、または CLR がシャットダウンされている場合はtruefalseを返します。
HasShutdownStarted プロパティは、ファイナライザー スレッドが開始されていない場合にfalseを返します。
このプロパティを使用すると、終了コードで静的変数にアクセスするかどうかを決定できます。 アプリケーション ドメインまたは CLR のいずれかがシャットダウンしている場合、最終処理メソッドを持ち、静的フィールドによって参照されるオブジェクトに確実にアクセスすることはできません。 これは、これらのオブジェクトが既に終了している可能性があるためです。