GC.WaitForFullGCComplete Метод

Определение

Возвращает состояние зарегистрированного уведомления, чтобы определить, завершена ли полная блокировка сборки мусора средой CLR.

Перегрузки

WaitForFullGCComplete()

Возвращает состояние зарегистрированного уведомления, чтобы определить, завершена ли полная блокировка сборки мусора средой CLR.

WaitForFullGCComplete(Int32)

Возвращает состояние зарегистрированного уведомления в пределах указанного времени ожидания, чтобы определить, завершена ли полная блокировка сборки мусора средой CLR.

WaitForFullGCComplete(TimeSpan)

Возвращает состояние зарегистрированного уведомления о том, завершена ли блокирующая сборка мусора. Может ждать неограниченное время полной коллекции.

WaitForFullGCComplete()

Исходный код:
GC.CoreCLR.cs
Исходный код:
GC.CoreCLR.cs
Исходный код:
GC.CoreCLR.cs

Возвращает состояние зарегистрированного уведомления, чтобы определить, завершена ли полная блокировка сборки мусора средой CLR.

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

Возвращает состояние зарегистрированного уведомления в пределах указанного времени ожидания, чтобы определить, завершена ли полная блокировка сборки мусора средой CLR.

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

Время ожидания полной коллекции

Возвращаемое значение

Состояние зарегистрированного полного уведомления сборки мусора

Применяется к