Esempio di tecnologia Garbage Collection

Download sample

In questo esempio vengono introdotti i concetti relativi alla Garbage Collection in .NET Framework e vengono illustrate le funzionalità per la progettazione di classi ottimali per un ambiente in cui la Garbage Collection viene eseguita. Nell'esempio viene inoltre illustrato il modo in cui un'applicazione può controllare alcuni comportamenti del Garbage Collector, ad esempio nell'esecuzione forzata delle raccolte, nella promozione di oggetti e nel funzionamento con riferimenti deboli agli oggetti.

Per informazioni sull'utilizzo degli esempi, vedere i seguenti argomenti:

Per generare l'esempio utilizzando il prompt dei comandi

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi in una delle sottodirectory specifiche del linguaggio della directory GarbageCollection.

  2. Dalla riga di comando digitare msbuild GarbageCollectionCS.sln o msbuild GarbageCollectionVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare. Ad esempio nella directory C:\Documents and Setttings\Your User Name\Documenti\Samples\Technologies\GarbageCollection\VB digitare msbuild GarbageCollectionVB.sln per generare la versione Visual Basic.

Per generare l'esempio utilizzando Visual Studio

  1. Aprire Esplora risorse, quindi spostarsi in una delle sottodirectory specifiche del linguaggio della directory GarbageCollection.

  2. Fare doppio clic sull'icona relativa a GarbageCollectionCS.sln o GarbageCollectionVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare, per aprire il file in Visual Studio 2005.

  3. Scegliere Genera soluzione dal menu Genera.

Per eseguire l’esempio

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi nella directory contenente il nuovo eseguibile.

  2. Digitare GarbageCollection.exe dalla riga di comando.

    Nota

    L'esempio è un'applicazione console. Per visualizzare l'output dell'applicazione, è necessario avviarla dalla riga di comando.

Requisiti

Versione di .NET Framework: 2.0, 1.1, 1.0

Osservazioni

Nell'ambiente di runtime gestito l'heap del Garbage Collector gestisce tutti gli oggetti classe. L'heap controlla la durata degli oggetti e li libera solo quando nessun componente del programma fa riferimento agli oggetti. In questo modo gli oggetti non causano mai perdita di memoria e i riferimenti agli oggetti sono sempre validi. Per dimostrare che la finalizzazione si verifica su un thread specifico, nell'esempio viene utilizzata la classe Thread per recuperare il codice hash dei thread. Il risultato ottenuto dimostra che il valore del codice hash restituito da una chiamata al metodo normale è diverso da quello restituito durante la finalizzazione.

Nel codice sorgente viene fatto riferimento allo spazio dei nomi System.Threading per recuperare i valori del codice per i thread corrispondenti su cui sono stati eseguiti i metodi dell'applicazione e la Garbage Collection.

Vedere anche

Riferimenti

Dispose
Finalize
GC
System.Threading
Thread
WeakReference

Altre risorse

Garbage Collection