Porady: koordynowanie wielu wątków wykonania
Składniki wielowątkowe mają być wielowątkowość, musi koordynować dostęp do zasobów udostępnionych.Jeśli wiele wątków, próba dostępu do zasobu udostępnionego w tym samym czasie, może powodować wyścigu, powodując uszkodzenie danych.Sytuacje wyścigu można uniknąć za pomocą blokad.Szczegółowe informacje na temat warunków bezpieczeństwa wątku i race zobacz Wielowątkowość składników.
Aby utworzyć blokadę na obiekt
Określ kod, który musi być wykonane w sposób atomowy i obiektu, na którym będzie wykonywany kod.Aby uzyskać szczegółowe informacje, zobacz Wielowątkowość składników
Umieścić blokady dla tego obiektu i ująć kodu wewnątrz tej blokady.
Kod ten będzie teraz wykonywane atomowo na zablokowany obiekt.
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. }
Zobacz też
Zadania
Wskazówki: tworzenie prostego składnika wielowątkowego za pomocą języka Visual Basic
Wskazówki: tworzenie prostego składnika wielowątkowego za pomocą języka C#
Informacje
Koncepcje
Składniki obsługujące wielowątkowość
Asynchroniczny wzorzec oparty na zdarzeniach — przegląd