Экспорт (0) Печать
Развернуть все
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

GC.WaitForFullGCApproach - метод

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

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

public static GCNotificationStatus WaitForFullGCApproach()

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

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

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

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

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

После этого метода следует вызвать метод WaitForFullGCComplete, чтобы убедиться, что была выполнена полная сборка мусора. Если вызывается только данный метод, это дает неопределенные результаты.

В следующем примере показано, как использовать этот метод для определения подходов ли блокировки, полная сборка мусора. Если состояние уведомления равно 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;
}


.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5 с пакетом обновления 1 (SP1), 3.0 с пакетом обновления 2 (SP2), 2.0 с пакетом обновления 2 (SP2)

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

  • LinkDemand 

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

  • SecurityCriticalAttribute 

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

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2015 Microsoft