GC.WaitForFullGCApproach メソッド

定義

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが近づいているかどうかを確認するための、登録済みの通知の状態を返します。Returns the status of a registered notification for determining whether a full, blocking garbage collection by the common language runtime is imminent.

オーバーロード

WaitForFullGCApproach()

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが近づいているかどうかを確認するための、登録済みの通知の状態を返します。Returns the status of a registered notification for determining whether a full, blocking garbage collection by the common language runtime is imminent.

WaitForFullGCApproach(Int32)

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが近づいているかどうかを確認するための登録済みの通知の状態を、指定したタイムアウト時間で返します。Returns, in a specified time-out period, the status of a registered notification for determining whether a full, blocking garbage collection by the common language runtime is imminent.

WaitForFullGCApproach()

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが近づいているかどうかを確認するための、登録済みの通知の状態を返します。Returns the status of a registered notification for determining whether a full, blocking garbage collection by the common language runtime is imminent.

public:
 static GCNotificationStatus WaitForFullGCApproach();
public static GCNotificationStatus WaitForFullGCApproach ();
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCApproach ();
static member WaitForFullGCApproach : unit -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCApproach : unit -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach () As GCNotificationStatus

戻り値

GCNotificationStatus

登録済みのガベージ コレクションの通知の状態。The status of the registered garbage collection notification.

属性

次の例は、このメソッドを使用して、フルブロッキングガベージコレクションが近づいているかどうかを判断する方法を示しています。The following example shows how to use this method to determine whether a full, blocking garbage collection is approaching. 通知の状態がである場合は常に SucceededOnFullGCApproachNotify 近づいているコレクションに応答してアクションを実行するために、ユーザーメソッドが呼び出されます。Whenever the status of the notification is Succeeded, the user method OnFullGCApproachNotify is called to perform actions in response to the approaching collection. このコード例は、「 ガベージコレクションの通知 」トピックで提供されている、より大きな例の一部です。This code example is part of a larger example provided for Garbage Collection Notifications topic.

// Check for a notification of an approaching collection.
GCNotificationStatus s = GC::WaitForFullGCApproach();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notifiction raised.");
    OnFullGCApproachNotify();
}
else if (s == GCNotificationStatus::Canceled)
{
    Console::WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // This can occur if a timeout period
    // is specified for WaitForFullGCApproach(Timeout)
    // or WaitForFullGCComplete(Timeout)
    // and the time out period has elapsed.
    Console::WriteLine("GC Notification not applicable.");
    break;
}
// Check for a notification of an approaching collection.
GCNotificationStatus s = GC.WaitForFullGCApproach();
if (s == GCNotificationStatus.Succeeded)
{
    Console.WriteLine("GC Notification raised.");
    OnFullGCApproachNotify();
}
else if (s == GCNotificationStatus.Canceled)
{
    Console.WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // This can occur if a timeout period
    // is specified for WaitForFullGCApproach(Timeout)
    // or WaitForFullGCComplete(Timeout)
    // and the time out period has elapsed.
    Console.WriteLine("GC Notification not applicable.");
    break;
}
' Check for a notification of an approaching collection.
Dim s As GCNotificationStatus = GC.WaitForFullGCApproach
If (s = GCNotificationStatus.Succeeded) Then
    Console.WriteLine("GC Notification raised.")
    OnFullGCApproachNotify()
ElseIf (s = GCNotificationStatus.Canceled) Then
    Console.WriteLine("GC Notification cancelled.")
    Exit While
Else
    ' This can occur if a timeout period
    ' is specified for WaitForFullGCApproach(Timeout) 
    ' or WaitForFullGCComplete(Timeout)  
    ' and the time out period has elapsed. 
    Console.WriteLine("GC Notification not applicable.")
    Exit While
End If

注釈

GCNotificationStatusこのメソッドによって返された列挙体を使用して、メソッドを使用して登録された現在のガベージコレクションの通知の状態を確認し RegisterForFullGCNotification ます。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. メソッドを使用して WaitForFullGCComplete 、フルガベージコレクションが完了したかどうかを確認することもできます。You can also use the WaitForFullGCComplete method to determine whether the full garbage collection has completed.

列挙体から制御が戻ったときに、メソッドを使用して、 Succeeded 追加のオブジェクトが割り当てられないようにしたり、コレクションを強制的に実行したりすることができ Collect ます。When the enumeration returns Succeeded, you can do tasks such as preventing additional objects from being allocated and inducing a collection yourself with the Collect method. この通知では、フルガベージコレクションが発生することは保証されません。フルガベージコレクションの実行に適したしきい値に達しただけです。Note that the notification does not guarantee that a full garbage collection will occur, only that conditions have reached the threshold that are favorable for a full garbage collection to occur.

このメソッドは、ガベージコレクションの通知が取得されるまで無期限に待機します。This method waits indefinitely for a garbage collection notification to be obtained. 通知を取得できない場合にメソッドが返すタイムアウト期間を指定するには、メソッドオーバーロードを使用し GC.WaitForFullGCApproach(Int32) ます。If you want to specify a time-out period for the method to return if the notification cannot be obtained, use the GC.WaitForFullGCApproach(Int32) method overload. タイムアウトを指定せずにこのメソッドを呼び出した場合は、 CancelFullGCNotification 優先される時間よりも長く待機している場合にメソッドを呼び出すことができます。If you call this method without specifying a time-out, you can call the CancelFullGCNotification method if you are waiting longer than preferred.

このメソッドには、メソッドを呼び出して、フルガベージコレクションがあることを確認する必要があり WaitForFullGCComplete ます。You should follow this method with a call to the WaitForFullGCComplete method to make sure that you have had a full garbage collection. このメソッドだけを呼び出すと、不確定な結果になります。Calling this method alone causes indeterminate results.

適用対象

WaitForFullGCApproach(Int32)

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが近づいているかどうかを確認するための登録済みの通知の状態を、指定したタイムアウト時間で返します。Returns, in a specified time-out period, the status of a registered notification for determining whether a full, blocking garbage collection by the common language runtime is imminent.

public:
 static GCNotificationStatus WaitForFullGCApproach(int millisecondsTimeout);
public static GCNotificationStatus WaitForFullGCApproach (int millisecondsTimeout);
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCApproach (int millisecondsTimeout);
static member WaitForFullGCApproach : int -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCApproach : int -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach (millisecondsTimeout As Integer) As GCNotificationStatus

パラメーター

millisecondsTimeout
Int32

通知の状態が取得されるまで待機する時間。The length of time to wait before a notification status can be obtained. 無期限に待機するには -1 を指定します。Specify -1 to wait indefinitely.

戻り値

GCNotificationStatus

登録済みのガベージ コレクションの通知の状態。The status of the registered garbage collection notification.

属性

例外

millisecondsTimeout は負でない数値、MaxValue 以下の数値、または -1 である必要があります。millisecondsTimeout must be either non-negative or less than or equal to MaxValue or -1.

注釈

GCNotificationStatusこのメソッドによって返された列挙体を使用して、メソッドを使用して登録された現在のガベージコレクションの通知の状態を確認し RegisterForFullGCNotification ます。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. メソッドを使用して WaitForFullGCComplete 、フルガベージコレクションが完了したかどうかを確認することもできます。You can also use the WaitForFullGCComplete method to determine whether the full garbage collection has completed.

このメソッドは、によって指定された値に関係なく、ガベージコレクションの通知状態が取得されるたびに直ちに返されることに注意 millisecondsTimeout してください。Note that this method returns immediately whenever a garbage collection notification status is obtained, regardless of the value specified by millisecondsTimeout. タイムアウト前にガベージコレクションの通知状態が取得されない場合 millisecondsTimeout 、このメソッドはを返し NotApplicable ます。If a garbage collection notification status is not obtained before millisecondsTimeout times out, this method returns NotApplicable.

列挙体から制御が戻ったときに、メソッドを使用して、 Succeeded 追加のオブジェクトが割り当てられないようにしたり、コレクションを強制的に実行したりすることができ Collect ます。When the enumeration returns Succeeded, you can do tasks such as preventing additional objects from being allocated and inducing a collection yourself with the Collect method. この通知では、フルガベージコレクションが発生することは保証されません。フルガベージコレクションの実行に適したしきい値に達しただけです。Note that the notification does not guarantee that a full garbage collection will occur, only that conditions have reached the threshold that are favorable for a full garbage collection to occur.

CancelFullGCNotificationタイムアウト期間が経過するまで待機できない場合は、メソッドを呼び出すことができます。You can call the CancelFullGCNotification method when you cannot wait for the time-out period to elapse.

このメソッドには、メソッドを呼び出して、フルガベージコレクションがあることを確認する必要があり WaitForFullGCComplete ます。You should follow this method with a call to the WaitForFullGCComplete method to make sure that you have had a full garbage collection. このメソッドだけを呼び出すと、不確定な結果になります。Calling this method alone causes indeterminate results.

適用対象