class RandDice {

static void Main() {

Random ran = new Random();

Console.Write(ran.Next(1, 7) + ' ');

Console.WriteLine(ran.Next(1, 7));

}

}

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

5 2

4 4

1 6

Сначала в этой программе создается объект класса Random. А затем в ней запрашиваются два случайных значения в пределах от 1 до 6.

Управление памятью и класс GC

В классе GC инкапсулируются средства 'сборки мусора'. Методы, определенные в этом классе, перечислены в табл. 21.15.

Таблица 21.15. Методы, определенные в классе GC

Метод

Назначение

public static

voidAddMemoryPressure(long bytesAllocated) public static void CancelFullGCNotification () public static void Collect () public static void Collect(int generation)

public static void Collect (int generation, GCCollectionMode mode)

public static int CollectionCount (int generation)

public static int GetGeneration (object obj)

Задает в качестве параметра bytes Allocated количество байтов, распределенных в неуправляемой области памяти Отменяет уведомление о “сборке мусора”

Инициализирует процесс “сборки мусора” Инициализирует процесс “сборки мусора” в областях памяти с номерами поколений от 0 до

generation

Инициализирует процесс “сборки мусора” в областях памяти с номерами поколений от 0 до generation в'режиме, определяемом параметром mode

Возвращает количество операций “сборки мусора”, выполненных в области памяти с номером поколения generation Возвращает номером поколения для области памяти, доступной по ссылке obj

_Продолжение табл. 21.15

Метод

Назначение

public static int

Возвращает номер поколения для области па

GetGeneration(WeakReference wo)

мяти, доступной по “слабой' ссылке, задавае

мой параметром wo. Наличие “слабой' ссылки не защищает объект от “сборки мусора”

public static long

Возвращает общий объем памяти (в байтах),

GetTotalMemory(bool

выделенной на данный момент. Если параметр

forceFullCollection)

forceFullCollection имеет логическое значение true, то сначала выполняется “сборка мусора”

public static void

Создает ссылку на объект obj, защищая

KeepAlive(object obj)

его от “сборки мусора”. Действие этой ссылки оканчивается после выполнения метода

KeepAlive()

public static void Regist

Разрешает уведомление о “сборке мусора”. Зна

erForFullGCNotification(in

чение параметра maxGenerationThreshold

t maxGenerationThreshold, int

обозначает количество объектов второго поко

largeObj ectHeapThreshold)

ления в обычной “куче', которые будут инициировать уведомление. А значение параметра largeObj ectHeapThreshold обозначает количество объектов в крупной “куче', которые будут инициировать уведомление. Оба значения должны быть указаны в пределах от 1 до 99

public static void

Задает в качестве параметра bytesAllocated

RemoveMemoryPressure(long

количество байтов, освобождаемых в неуправ

bytesAllocated)

ляемой области памяти

public static void

Вызывает деструктор для объекта obj.

ReRegisterForFinalize(object

Этот метод аннулирует действие метода

obj)

SuppressFinalize ()

public static void

Препятствует вызову деструктора для объекта

SuppressFinalize(object obj)

obj

public static

Ожидает уведомления о том, что должен про

GCNotificationStatus

изойти полный цикл “сборки мусора”. Здесь

WaitForFullGCApproach()

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату