Condividi tramite


Esempio Thread Pools Technology

Aggiornamento: novembre 2007

In questo esempio viene illustrato come utilizzare la classe ThreadPool. Viene accodata una chiamata asincrona di metodo eseguita da un thread del pool di thread gestito da Common Language Runtime.

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

Download sample

Per compilare l'esempio utilizzando il prompt dei comandi

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi in una delle sottodirectory specifiche del linguaggio relative all'esempio.

  2. Dalla riga di comando digitare msbuild PoolsCS.sln o msbuild PoolsVB.sln, a seconda del linguaggio di programmazione che si desidera utilizzare.

Per compilare l'esempio utilizzando Visual Studio

  1. Aprire Esplora risorse, quindi spostarsi in una delle sottodirectory specifiche del linguaggio relative all'esempio.

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

  3. Scegliere Compila soluzione dal menu Compila.

Per eseguire l'esempio

  1. Spostarsi nella directory contenente il file eseguibile compilato, utilizzando il prompt dei comandi.

  2. Digitare AsyncMethod.exe dalla riga di comando.

    Nota:

     L'esempio compila un'applicazione console. Per visualizzare l'output dell'applicazione, è necessario avviarla dalla finestra del prompt dei comandi.

Osservazioni

In questo esempio viene utilizzato l'accodamento per gestire le chiamate asincrone ai metodi. Il metodo chiamato esegue le operazioni previste e quindi imposta un evento per indicare che il lavoro è terminato. Il thread principale attende tale evento e quindi chiude l'applicazione.

Nell'elenco riportato di seguito vengono descritte in modo sintetico le classi e le tecnologie utilizzate dall'esempio.

  • Threading

    • ThreadPool - Durante la scrittura di codice gestito si consiglia agli sviluppatori di utilizzare, quando possibile, il metodo QueueUserWorkItem per implementare le chiamate asincrone ai metodi. In questo esempio viene illustrato un utilizzo semplice di questo tipo per eseguire funzionalità asincrone.
  • Sincronizzazione di thread

    • AutoResetEvent - Il thread principale dell'esempio rimane in attesa su un oggetto AutoResetEvent finché tale oggetto non viene impostato dal metodo asincrono. Una volta eseguite tutte le operazioni previste, il metodo asincrono chiama il metodo Set.
  • Delegati

    • WaitCallback - Consente di creare un metodo di callback indipendente dai tipi per la classe ThreadPool da utilizzare.

Per ulteriori informazioni sulla sincronizzazione dei thread, vedere i commenti nei file di codice sorgente.

Vedere anche

Concetti

Thread e threading

Riferimenti

AutoResetEvent

Delegate

System.Threading

ThreadPool

ThreadStart

WaitCallback

Altre risorse

Oggetti e funzionalità del threading