Sdílet prostřednictvím


Postupy: Koordinace více vláken provádění

Mohl být podprocesu komponenty s více podprocesy musí koordinovat přístup ke sdíleným prostředkům.Pokud se pokus o přístup ke sdíleným prostředkům současně více podprocesů, může být sporech, způsobující poškození dat.Můžete zabránit vznik sporu pomocí zámků.Podrobnosti týkající se podmínek bezpečnostní vlákno a rasy, viz Podprocesu komponenty.

Vytvoření objektu zámku

  1. Identifikujte kód, který musí být provedeny atomicky a objekt, na kterém bude spuštěn kód.Podrobnosti naleznete v tématu Podprocesu komponenty

  2. Umístěte objekt zámek a uzavřete kód uvnitř uzamčení.

    Tento kód bude nyní spuštěn atomicky uzamčené objektu.

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

Viz také

Úkoly

Návod: Vytvoření jednoduché vícevláknové komponenty pomocí sady Visual Basic

Návod: Vytvoření jednoduché vícevláknové komponenty pomocí Visual C#

Referenční dokumentace

BackgroundWorker

Koncepty

Komponenty bezpečné pro přístup z více vláken

Přehled asynchronních vzorů založených na událostech

Další zdroje

Použití více vláken v komponentách