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
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
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
Concetti
Cenni preliminari sul modello asincrono basato su eventi