Comment : coordonner plusieurs threads d'exécution

Mise à jour : novembre 2007

Pour que vos composants multithread soient thread-safe, vous devez coordonner l'accès aux ressources partagées. La tentative simultanée de plusieurs threads d'accéder à une ressource partagée, peut entraîner des conditions de concurrence critique, provoquant ainsi l'altération des données. L'utilisation de verrous peut vous permettre d'éviter ces conditions de concurrence critique. Pour plus d'informations sur la compatibilité des threads et les conditions de concurrence critique, consultez Composants thread-safe.

Pour créer un verrou sur un objet

  1. Identifiez le code à exécuter de façon atomique et l'objet sur lequel le code doit être exécuté. Pour plus d'informations, consultez Composants thread-safe.

  2. Placez un verrou sur cet objet, puis insérez votre code dans ce verrou.

    Ce code sera désormais exécuté de façon atomique sur l'objet verrouillé.

    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.
    }
    

Voir aussi

Tâches

Procédure pas à pas : création d'un composant simple multithread avec Visual Basic

Procédure pas à pas : création d'un composant simple multithread à l'aide de Visual C#

Concepts

Composants thread-safe

Vue d'ensemble du modèle asynchrone basé sur des événements

Référence

BackgroundWorker

Autres ressources

Multithreading dans les composants