Environment.HasShutdownStarted プロパティ
共通言語ランタイムが終了中かどうか、または現在のアプリケーション ドメインがアンロード中かどうかを示します。
Public Shared ReadOnly Property HasShutdownStarted As Boolean
[C#]
public static bool HasShutdownStarted {get;}
[C++]
public: __property static bool get_HasShutdownStarted();
[JScript]
public static function get HasShutdownStarted() : Boolean;
プロパティ値
共通言語ランタイムが終了中か現在の AppDomain がアンロード中の場合は true 。それ以外の場合は false 。
現在のアプリケーション ドメインとは、 HasShutdownStarted を呼び出しているオブジェクトが含まれている AppDomain です。
解説
オブジェクトの終了メソッドを使用すると、そのオブジェクトがガベージ コレクションによって収集される前に、必要なクリーンアップ操作を実行できます。オブジェクトの終了後、そのオブジェクトにアクセスすることはできますが、状態が無効であるため使用することはできません。最終的に、ガベージ コレクションがそのオブジェクトを完了させて解放します。
オブジェクトの終了メソッドは、ガベージ コレクションの実行時、そのオブジェクトを含むアプリケーション ドメインがアンロードされるとき、または共通言語ランタイムがシャットダウンされるときのいずれかの状況で呼び出されます。
終了メソッドを使用して処理を実行しているときに、静的フィールドで参照されていて、終了メソッドを持つ別のオブジェクトにアクセスする必要が生じることがあります。しかし、それらのオブジェクトが既に終了されている可能性があるため、このようなアクセス操作は必ず成功するとは限りません。
メモ ただし例外として Console クラスがあります。このクラスはストリーム オブジェクトを参照する静的フィールドを含んでいますが、ドメインのアンロード中やシステムのシャットダウン時でもシステム コンソールに必ず書き込むことができるように、特別な形で実装されています。
オブジェクトの終了メソッドの中でこのメソッドを使用すると、共通言語ランタイムがシャットダウン中かどうか、またはアプリケーション ドメインがアンロード中かどうかを確認できます。シャットダウン中の場合は、静的フィールドによって参照され、終了メソッドを持つオブジェクトへのアクセス操作は成功するとは限りません。
使用例
' Sample for the Environment.HasShutdownStarted property
Imports System
Class Sample
Public Shared Sub Main()
Console.WriteLine()
Console.WriteLine("HasShutdownStarted: {0}", Environment.HasShutdownStarted)
End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'HasShutdownStarted: False
'
[C#]
// Sample for the Environment.HasShutdownStarted property
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("HasShutdownStarted: {0}", Environment.HasShutdownStarted);
}
}
/*
This example produces the following results:
HasShutdownStarted: False
*/
[C++]
// Sample for the Environment::HasShutdownStarted property
#using <mscorlib.dll>
using namespace System;
int main() {
Console::WriteLine();
Console::WriteLine(S"HasShutdownStarted: {0}", __box(Environment::HasShutdownStarted));
}
/*
This example produces the following results:
HasShutdownStarted: False
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
参照
Environment クラス | Environment メンバ | System 名前空間 | AppDomain.IsFinalizingForUnload