Gewusst wie: Koordinieren mehrerer Ausführungsthreads
Um die Threadsicherheit von Multithreadkomponenten zu gewährleisten, muss der Zugriff auf gemeinsam genutzte Ressourcen koordiniert werden. Wenn mehrere Threads gleichzeitig versuchen, auf eine gemeinsam genutzte Ressource zuzugreifen, können Racebedingungen entstehen, die eine Beschädigung der Daten verursachen. Durch die Verwendung von Sperren können Racebedingungen vermieden werden. Ausführliche Informationen über Threadsicherheit und Racebedingungen finden Sie unter Threadsichere Komponenten.
So erstellen Sie eine Sperre für ein Objekt
Identifizieren Sie den atomar auszuführenden Code und das Objekt, für das der Code ausgeführt wird. Einzelheiten dazu finden Sie unter Threadsichere Komponenten.
Fügen Sie eine Sperre für dieses Objekt ein, und schließen Sie den Code innerhalb dieser Sperre ein.
Dieser Code wird nun atomar für das gesperrte Objekt ausgeführt.
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. }
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Erstellen einer einfachen Multithreadkomponente mit Visual Basic
Exemplarische Vorgehensweise: Erstellen einer einfachen Multithreadkomponente mit Visual C#
Referenz
Konzepte
Übersicht über ereignisbasierte asynchrone Muster