Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод GC.WaitForFullGCApproach ()

 

Опубликовано: Октябрь 2016

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

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

[SecurityCriticalAttribute]
public static GCNotificationStatus WaitForFullGCApproach()

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

Type: System.GCNotificationStatus

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

Используйте GCNotificationStatus перечисления, возвращаемый этим методом, чтобы определить состояние текущего уведомления о сборке мусора, зарегистрированный с помощью RegisterForFullGCNotification метод. Можно также использовать WaitForFullGCComplete метод, чтобы определить, завершена ли полная сборка мусора.

При перечислении возвращает Succeeded, можно выполнять задачи, такие как дополнительные объекты, предотвращая выделяется и вызывая сборку самостоятельно с Collect метод. Обратите внимание, что уведомление не гарантирует, что полная сборка мусора происходит, только то, что условия Достигнуто пороговое значение, подходящей для полная сборка мусора возникает.

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

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

В следующем примере показано, как этот метод используется для определения того, достигает ли полная блокировка сборки мусора. Каждый раз, когда находится в состоянии уведомление Succeeded, пользовательский метод OnFullGCApproachNotify вызывается для выполнения действий в ответ на приближение сборки. Данный пример кода является частью большего примера, приведенного для Garbage Collection Notifications раздела.

// 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;
}

LinkDemand

for full trust for the immediate caller. This member cannot be used by partially trusted code.

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

.NET Framework
Доступно с 2.0
Вернуться в начало
Показ: