Пример Garbage Collection Technology
Обновлен: Ноябрь 2007
Этот пример дает разработчикам представление о сборке мусора в платформе .NET Framework и показывает функциональные возможности проектирования классов, которые подходят для работы в среде сборки мусора. В данном примере также показано, каким образом приложение может контролировать поведение некоторых сборщиков мусора, например, в принудительной очистке, переходящих объектах и работе со слабыми ссылками на объекты.
Дополнительные сведения об использовании примеров см. в следующих разделах:
Построение примера с использованием командной строки
Откройте окно командной строки и перейдите к одной из вложенных папок в каталоге GarbageCollection, соответствующей выбранному языку.
В командной строке введите msbuild GarbageCollectionCS.sln или msbuild GarbageCollectionVB.sln, в зависимости от выбранного языка программирования. Например, в каталоге C:\Documents and Settings\Имя пользователя\My Documents\Samples\Technologies\CAS\VB введите в командной строке msbuild GarbageCollectionVB.sln для построения версии Visual Basic.
Построение примера с использованием Visual Studio
Откройте обозреватель Windows и перейдите к одной из вложенных папок в каталоге GarbageCollection, соответствующей выбранному языку.
Дважды щелкните значок файла GarbageCollectionCS.sln или GarbageCollectionVB.sln, в зависимости от выбранного языка программирования, чтобы открыть файл в Visual Studio 2005.
В меню Построение выберите команду Построить решение.
Выполнение примера
Откройте окно командной строки и перейдите в каталог, содержащий новый исполняемый файл.
В командной строке введите GarbageCollection.exe.
Примечание.
Это образец консольного приложения. Чтобы просмотреть выводимые им данные, необходимо запустить его в командной строке.
Требования
Версия .Net Framework: 2.0, 1.1, 1.0
Примечания
В управляемой среде выполнения куча сбора мусора управляет всеми объектами класса. В данной куче отслеживается срок жизни каждого объекта, и при полном отсутствии в программе ссылок на него объект удаляется из памяти. Это гарантирует, что через объекты не происходит утечка памяти и ссылки на объекты всегда действительны. Чтобы показать, что финализация происходит в отдельном потоке, в данном примере используется класс Thread для извлечения хэш-кода из потока. Он показывает, что хэш-код, возвращенный обычным вызовом метода, имеет значение, отличное от значения, возвращенного во время финализации.
В исходном коде данный пример ссылается на пространство имен System.Threading, чтобы извлечь значения хэш-кода для соответствующих потоков, на которых выполняются методы приложения и сборка мусора.