Condividi tramite


Procedura: coordinare più thread di esecuzione

Per garantire che i componenti multithreading siano thread-safe, è necessario coordinare l'accesso alle risorse condivise. Se più thread tentano di accedere contemporaneamente a una risorsa condivisa, possono verificare delle race condition e il conseguente danneggiamento dei dati. Per evitare che si verifichino race condition, utilizzare i blocchi. Per informazioni dettagliate sulla funzionalità di thread-safe e sulle race condition, vedere Componenti thread-safe.

Per creare un blocco in un oggetto

  1. Identificare il codice che deve essere eseguito in modalità atomica e l'oggetto sul quale verrà eseguito il codice. Per ulteriori informazioni, vedere Componenti thread-safe

  2. Inserire un blocco sullo specifico oggetto e racchiudere il codice nel blocco.

    A questo punto, il codice riportato di seguito verrà eseguito in modalità atomica sull'oggetto bloccato.

    SyncLock MyObject   ' This represents the start of the lock on MyObject.
    ' Insert code to be executed atomically on MyObject here.
    End SyncLock   ' This represents the end of the lock.
    
    lock (MyObject) 
       // All code inside the braces {} is executed with MyObject locked.
    {
       // Insert code to be executed atomically on MyObject here.
    }
    

Vedere anche

Attività

Procedura dettagliata: modifica di componenti multithreading semplici con Visual Basic

Procedura dettagliata: modifica di componenti multithreading semplici con Visual C#

Riferimenti

BackgroundWorker

Concetti

Componenti thread-safe

Cenni preliminari sul modello asincrono basato su eventi

Altre risorse

Multithreading nei componenti