次の方法で共有


GC.WaitForFullGCComplete メソッド

定義

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが完了したかどうかを確認するための、登録済みの通知の状態を返します。

オーバーロード

WaitForFullGCComplete()

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが完了したかどうかを確認するための、登録済みの通知の状態を返します。

WaitForFullGCComplete(Int32)

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが完了したかどうかを確認するための登録済みの通知の状態を、指定したタイムアウト時間で返します。

WaitForFullGCComplete(TimeSpan)

ブロッキング ガベージ コレクションが完了したかどうかに関する登録済み通知の状態を返します。 完全なコレクションを無期限に待機できます。

WaitForFullGCComplete()

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

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが完了したかどうかを確認するための、登録済みの通知の状態を返します。

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

戻り値

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

属性

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

// Check for a notification of a completed collection.
s = GC::WaitForFullGCComplete();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notification raised.");
    OnFullGCCompleteEndNotify();
}
else if (s == GCNotificationStatus::Canceled)
{
    Console::WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // Could be a time out.
    Console::WriteLine("GC Notification not applicable.");
    break;
}
// Check for a notification of a completed collection.
GCNotificationStatus status = GC.WaitForFullGCComplete();
if (status == GCNotificationStatus.Succeeded)
{
    Console.WriteLine("GC Notification raised.");
    OnFullGCCompleteEndNotify();
}
else if (status == GCNotificationStatus.Canceled)
{
    Console.WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // Could be a time out.
    Console.WriteLine("GC Notification not applicable.");
    break;
}
// 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
' Check for a notification of a completed collection.
s = GC.WaitForFullGCComplete
If (s = GCNotificationStatus.Succeeded) Then
    Console.WriteLine("GC Notifiction raised.")
    OnFullGCCompleteEndNotify()
ElseIf (s = GCNotificationStatus.Canceled) Then
    Console.WriteLine("GC Notification cancelled.")
    Exit While
Else
    ' Could be a time out.
    Console.WriteLine("GC Notification not applicable.")
    Exit While
End If

注釈

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

列挙が を返 Succeededすときは、 プロパティを使用して作業の再開やコレクション数の取得などのタスクを CollectionCount 実行できます。

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

このメソッド呼び出しの前に、 メソッドを呼び出して WaitForFullGCApproach 、完全なガベージ コレクションがあることを確認する必要があります。 このメソッドを単独で呼び出すと、不確定な結果が生成される可能性があります。

こちらもご覧ください

適用対象

WaitForFullGCComplete(Int32)

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

共通言語ランタイムによるフル ブロッキング ガベージ コレクションが完了したかどうかを確認するための登録済みの通知の状態を、指定したタイムアウト時間で返します。

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

パラメーター

millisecondsTimeout
Int32

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

戻り値

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

属性

例外

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

注釈

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

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

列挙が を返 Succeededすときは、 プロパティを使用して作業の再開やコレクション数の取得などのタスクを CollectionCount 実行できます。

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

このメソッド呼び出しの前に、 メソッドを呼び出して WaitForFullGCApproach 、完全なガベージ コレクションがあることを確認する必要があります。 このメソッドを単独で呼び出すと、不確定な結果が生成される可能性があります。

こちらもご覧ください

適用対象

WaitForFullGCComplete(TimeSpan)

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

ブロッキング ガベージ コレクションが完了したかどうかに関する登録済み通知の状態を返します。 完全なコレクションを無期限に待機できます。

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

パラメーター

timeout
TimeSpan

完全なコレクションの待機中のタイムアウト

戻り値

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

適用対象