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

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

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

BackgroundWorker

Koncepcje

Składniki obsługujące wielowątkowość

Asynchroniczny wzorzec oparty na zdarzeniach — przegląd

Inne zasoby

Wielowątkowość w składnikach