Environment.HasShutdownStarted プロパティ

定義

現在のアプリケーション ドメインがアンロードされているか、共通言語ランタイム (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 のいずれかがシャットダウンしている場合、最終処理メソッドを持ち、静的フィールドによって参照されるオブジェクトに確実にアクセスすることはできません。 これは、これらのオブジェクトが既に終了している可能性があるためです。

適用対象

こちらもご覧ください