GC.WaitForFullGCComplete Method (Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Returns, in a specified time-out period, the status of a registered notification for determining whether a full, blocking garbage collection by common language the runtime has completed.

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

public static GCNotificationStatus WaitForFullGCComplete(
	int millisecondsTimeout


Type: System.Int32

The length of time to wait before a notification status can be obtained. Specify -1 to wait indefinitely.

Return Value

Type: System.GCNotificationStatus

The status of the registered garbage collection notification.

Exception Condition

millisecondsTimeout must be either non-negative or less than or equal to MaxValue or -1.

Use the GCNotificationStatus enumeration returned by this method to determine the status of the current garbage collection notification that was registered by using the RegisterForFullGCNotification method. You can also use the WaitForFullGCApproach method to determine whether a full garbage collection is imminent.

Note that this method returns immediately whenever a garbage collection notification status is obtained, regardless of the value specified by millisecondsTimeout. If a garbage collection notification status is not obtained before millisecondsTimeout times out, this method returns NotApplicable.

When the enumeration returns Succeeded, you can do tasks such as resuming work and obtaining a collection count with the CollectionCount property.

You can call the CancelFullGCNotification method when you cannot wait for the time-out period to elapse.

This method call should be preceded with a call to the WaitForFullGCApproach method to make sure that you have had a full garbage collection. Calling this method alone can produce indeterminate results.


for full trust for the immediate caller. This member cannot be used by partially trusted code.


requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

.NET Framework
Available since 2.0
Return to top