Export (0) Print
Expand All

Environment.HasShutdownStarted Property

Gets a value that indicates whether the current application domain is being unloaded or the common language runtime (CLR) is shutting down.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static bool HasShutdownStarted { get; }

Property Value

Type: System.Boolean
true if the current application domain is being unloaded or the CLR is shutting down; otherwise, false.

When the CLR unloads an application domain, it runs the finalizers on all objects that have a finalizer method in that application domain. When the CLR shuts down, it starts the finalizer thread on all objects that have a finalizer method. The HasShutdownStarted property returns true only after the finalizer thread has been started. When the property returns true, you can determine whether an application domain is being unloaded or the CLR itself is shutting down by calling the AppDomain.IsFinalizingForUnload method. This method returns true if finalizers are called because the application domain is unloading or false if the CLR is shutting down.

The HasShutdownStarted property returns false if the finalizer thread has not been started.

By using this property, you can determine whether to access static variables in your finalization code. If either an application domain or the CLR is shutting down, you cannot reliably access any object that has a finalization method and that is referenced by a static field. This is because these objects may have already been finalized.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft