Condividi tramite


Oggetti e funzionalità del threading

Aggiornamento: novembre 2007

In .NET Framework sono disponibili diversi oggetti che consentono di creare e gestire applicazioni con multithreading. I thread gestiti sono rappresentati dalla classe Thread. La classe ThreadPool consente di creare e gestire facilmente le attività in background con multithreading. La classe BackgroundWorker svolge esattamente la stessa funzione per le attività che interagiscono con l'interfaccia utente. La classe Timer esegue le attività in background a intervalli regolari.

Sono inoltre disponibili alcune classi che sincronizzano le attività dei thread, incluse le classi Semaphore e EventWaitHandle introdotte con .NET Framework versione 2.0. Il confronto tra le funzionalità di queste classi è riportato in Cenni preliminari sulle primitive di sincronizzazione.

In questa sezione

  • Pool di thread gestiti
    Viene spiegata la classe ThreadPool, che consente di richiedere a un thread di eseguire un'attività senza doversi occupare della gestione dei thread in modo specifico.

  • Timer
    Viene spiegato come utilizzare un Timer per specificare un delegato da chiamare a un'ora specificata.

  • Monitor
    Viene spiegato come utilizzare la classe Monitor per sincronizzare l'accesso a un membro o per generare i propri tipi di gestione dei thread.

  • Handle di attesa
    Viene fornita una descrizione della classe WaitHandle, la classe base astratta relativa agli handle di attesa degli eventi, dei mutex e dei semafori, che consente l'attesa di più eventi di sincronizzazione.

  • EventWaitHandle, AutoResetEvent e ManualResetEvent
    Vengono illustrati gli handle di attesa degli eventi utilizzati per sincronizzare le attività dei thread mediante e l'invio e l'attesa di segnali.

  • Mutex
    Viene illustrato come utilizzare un oggetto Mutex per sincronizzare l'accesso a un oggetto o per costruire meccanismi di sincronizzazione personalizzati.

  • Operazioni interlocked
    Viene illustrato come utilizzare la classe Interlocked per incrementare o decrementare un valore e memorizzarlo in una singola operazione atomica.

  • Blocchi in lettura/scrittura
    Viene definito un blocco che implementa la semantica singolo writer/visualizzatore multiplo.

  • Semafori
    Vengono descritti oggetti Semaphore e viene illustrato come utilizzarli per controllare l'accesso alle risorse limitate.

  • Cenni preliminari sulle primitive di sincronizzazione
    Viene eseguito un confronto tra le funzionalità delle classi .NET Framework fornite per il blocco e la sincronizzazione dei thread gestiti.

Riferimenti

  • Thread
    Viene fornita la documentazione di riferimento relativa alla classe Thread che rappresenta un thread gestito, indipendentemente dal fatto che provenga da codice non gestito o che sia stato creato in un'applicazione gestita.

  • BackgroundWorker
    Vengono consentite attività in background che interagiscono con l'interfaccia utente, comunicando mediante eventi che si verificano nel thread dell'interfaccia utente.

Sezioni correlate

  • I/O di file asincrono
    Viene descritto in che modo le porte di completamento asincrono I/O utilizzano il pool di thread per richiedere l'elaborazione solo quando viene completata un'operazione di input/output.