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
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
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
Koncepty
Komponenty bezpečné pro přístup z více vláken
Přehled asynchronních vzorů založených na událostech