Поделиться через


GC.WaitForFullGCComplete Метод

Определение

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

Перегрузки

Имя Описание
WaitForFullGCComplete()

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

WaitForFullGCComplete(Int32)

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

WaitForFullGCComplete(TimeSpan)

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

WaitForFullGCComplete()

Исходный код:
GC.CoreCLR.cs
Исходный код:
GC.CoreCLR.cs
Исходный код:
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.
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(Int32) с помощью метода.

Этот метод ожидает получения уведомления о сборке мусора на неопределенный срок. Если вы хотите указать период ожидания для метода, возвращаемого, если уведомление не удается получить, используйте перегрузку GC.WaitForFullGCApproach(Int32) метода. Если этот метод вызывается без указания времени ожидания, можно вызвать CancelFullGCNotification метод, если вы ожидаете больше времени, чем предпочтительно.

Этот вызов метода должен предшествовать вызову WaitForFullGCApproach метода, чтобы убедиться, что у вас была полная сборка мусора. Вызов этого метода может привести к неопределенным результатам.

См. также раздел

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

WaitForFullGCComplete(Int32)

Исходный код:
GC.CoreCLR.cs
Исходный код:
GC.CoreCLR.cs
Исходный код:
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(Int32) с помощью свойства.

Метод можно вызвать CancelFullGCNotification , если не удается ждать истечения времени ожидания.

Этот вызов метода должен предшествовать вызову WaitForFullGCApproach метода, чтобы убедиться, что у вас была полная сборка мусора. Вызов этого метода может привести к неопределенным результатам.

См. также раздел

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

WaitForFullGCComplete(TimeSpan)

Исходный код:
GC.cs
Исходный код:
GC.cs
Исходный код:
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

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