Пример Garbage Collection Technology

Обновлен: Ноябрь 2007

Этот пример дает разработчикам представление о сборке мусора в платформе .NET Framework и показывает функциональные возможности проектирования классов, которые подходят для работы в среде сборки мусора. В данном примере также показано, каким образом приложение может контролировать поведение некоторых сборщиков мусора, например, в принудительной очистке, переходящих объектах и работе со слабыми ссылками на объекты.

Дополнительные сведения об использовании примеров см. в следующих разделах:

Download sample

Построение примера с использованием командной строки

  1. Откройте окно командной строки и перейдите к одной из вложенных папок в каталоге GarbageCollection, соответствующей выбранному языку.

  2. В командной строке введите msbuild GarbageCollectionCS.sln или msbuild GarbageCollectionVB.sln, в зависимости от выбранного языка программирования. Например, в каталоге C:\Documents and Settings\Имя пользователя\My Documents\Samples\Technologies\CAS\VB введите в командной строке msbuild GarbageCollectionVB.sln для построения версии Visual Basic.

Построение примера с использованием Visual Studio

  1. Откройте обозреватель Windows и перейдите к одной из вложенных папок в каталоге GarbageCollection, соответствующей выбранному языку.

  2. Дважды щелкните значок файла GarbageCollectionCS.sln или GarbageCollectionVB.sln, в зависимости от выбранного языка программирования, чтобы открыть файл в Visual Studio 2005.

  3. В меню Построение выберите команду Построить решение.

Выполнение примера

  1. Откройте окно командной строки и перейдите в каталог, содержащий новый исполняемый файл.

  2. В командной строке введите GarbageCollection.exe.

    w908yt2c.alert_note(ru-ru,VS.90).gifПримечание.

    Это образец консольного приложения. Чтобы просмотреть выводимые им данные, необходимо запустить его в командной строке.

Требования

Версия .Net Framework: 2.0, 1.1, 1.0

Примечания

В управляемой среде выполнения куча сбора мусора управляет всеми объектами класса. В данной куче отслеживается срок жизни каждого объекта, и при полном отсутствии в программе ссылок на него объект удаляется из памяти. Это гарантирует, что через объекты не происходит утечка памяти и ссылки на объекты всегда действительны. Чтобы показать, что финализация происходит в отдельном потоке, в данном примере используется класс Thread для извлечения хэш-кода из потока. Он показывает, что хэш-код, возвращенный обычным вызовом метода, имеет значение, отличное от значения, возвращенного во время финализации.

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

См. также

Ссылки

Dispose

Finalize

GC

System.Threading

Thread

WeakReference

Другие ресурсы

Сборка мусора