GC.WaitForFullGCApproach メソッド

定義

共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

オーバーロード

名前 説明
WaitForFullGCApproach()

共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

WaitForFullGCApproach(Int32)

指定されたタイムアウト期間に、共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

WaitForFullGCApproach(TimeSpan)

指定されたタイムアウト期間に、共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

WaitForFullGCApproach()

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

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

返品

登録済みのガベージ コレクション通知の状態。

属性

次の例は、このメソッドを使用して、完全なブロッキング ガベージ コレクションが近づいているかどうかを判断する方法を示しています。 通知の状態が Succeededされるたびに、ユーザー メソッド OnFullGCApproachNotify が呼び出され、近づいているコレクションに応答してアクションが実行されます。 このコード例は、 ガベージ コレクション通知 に関するトピックで提供されるより大きな例の一部です。

// 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.
match GC.WaitForFullGCApproach() with
| GCNotificationStatus.Succeeded ->
    printfn "GC Notification raised."
    onFullGCApproachNotify ()
    // Check for a notification of a completed collection.
    match GC.WaitForFullGCComplete() with
    | GCNotificationStatus.Succeeded ->
        printfn "GC Notification raised."
        onFullGCCompleteEndNotify ()
    | GCNotificationStatus.Canceled ->
        printfn "GC Notification cancelled."
        broken <- true
    | _ ->
        // Could be a time out.
        printfn "GC Notification not applicable."
        broken <- true
| GCNotificationStatus.Canceled ->
    printfn "GC Notification cancelled."
    broken <- true
| _ ->
    // This can occur if a timeout period
    // is specified for WaitForFullGCApproach(Timeout)
    // or WaitForFullGCComplete(Timeout)
    // and the time out period has elapsed.
    printfn "GC Notification not applicable."
    broken <- true
' 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列挙体を使用します。 WaitForFullGCComplete メソッドを使用して、完全なガベージ コレクションが完了したかどうかを判断することもできます。

列挙体が Succeededを返すときに、追加のオブジェクトが割り当てられないようにしたり、 Collect メソッドを使用してコレクションを自分で誘導したりなどのタスクを実行できます。 この通知では、フル ガベージ コレクションが発生することは保証されず、完全ガベージ コレクションが発生するのに適したしきい値に達した状態に達した場合に限られます。

このメソッドは、ガベージ コレクション通知が取得されるまで無期限に待機します。 通知を取得できない場合にメソッドが返すタイムアウト期間を指定する場合は、 GC.WaitForFullGCApproach(Int32) メソッドのオーバーロードを使用します。 タイムアウトを指定せずにこのメソッドを呼び出す場合は、優先よりも長く待機している場合は、 CancelFullGCNotification メソッドを呼び出すことができます。

完全なガベージ コレクションがあることを確認するには、 WaitForFullGCComplete メソッドの呼び出しでこのメソッドに従う必要があります。 このメソッドだけを呼び出すと、結果が不確定になります。

こちらもご覧ください

適用対象

WaitForFullGCApproach(Int32)

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

指定されたタイムアウト期間に、共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

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

通知状態を取得するまでの待機時間。 無期限に待機する -1 を指定します。

返品

登録済みのガベージ コレクション通知の状態。

属性

例外

millisecondsTimeout は、 Int32.MaxValue または -1 以下である必要があります。

注釈

GCNotificationStatus メソッドを使用して登録された現在のガベージ コレクション通知の状態を確認するには、このメソッドによって返されるRegisterForFullGCNotification列挙体を使用します。 WaitForFullGCComplete メソッドを使用して、完全なガベージ コレクションが完了したかどうかを判断することもできます。

このメソッドは、 millisecondsTimeoutで指定された値に関係なく、ガベージ コレクション通知の状態が取得されるたびに直ちに返されることに注意してください。 millisecondsTimeoutタイムアウトする前にガベージ コレクション通知の状態が取得されない場合、このメソッドはNotApplicableを返します。

列挙体が Succeededを返すときに、追加のオブジェクトが割り当てられないようにしたり、 Collect メソッドを使用してコレクションを自分で誘導したりなどのタスクを実行できます。 この通知では、フル ガベージ コレクションが発生することは保証されず、完全ガベージ コレクションが発生するのに適したしきい値に達した状態に達した場合に限られます。

タイムアウト期間が経過するのを待つことができない場合は、 CancelFullGCNotification メソッドを呼び出すことができます。

完全なガベージ コレクションがあることを確認するには、 WaitForFullGCComplete メソッドの呼び出しでこのメソッドに従う必要があります。 このメソッドだけを呼び出すと、結果が不確定になります。

こちらもご覧ください

適用対象

WaitForFullGCApproach(TimeSpan)

ソース:
GC.cs
ソース:
GC.cs
ソース:
GC.cs
ソース:
GC.cs
ソース:
GC.cs

指定されたタイムアウト期間に、共通言語ランタイムによる完全なブロッキング ガベージ コレクションが差し迫っているかどうかを判断するための登録済み通知の状態を返します。

public:
 static GCNotificationStatus WaitForFullGCApproach(TimeSpan timeout);
public static GCNotificationStatus WaitForFullGCApproach(TimeSpan timeout);
static member WaitForFullGCApproach : TimeSpan -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach (timeout As TimeSpan) As GCNotificationStatus

パラメーター

timeout
TimeSpan

完全な GC アプローチを待機する際のタイムアウト

返品

登録済みの完全な GC 通知の状態

適用対象