W celu synchronizacji wątków można wykorzystać mechanizm zdarzeń: ManualResetEvent oraz AutoResetEvent. Rozwiązanie polega na zastosowaniu sygnalizacji. Chcąc wejść do sekcji krytycznej piszemy:ManualResetEvent resetEvent =new ManualResetEvent(false); resetEvent.WaitOne(); W konstruktorze ustawiamy początkową wartość sygnału na false(brak sygnału). Następnie wywołujemy metodę WaitOne, która czeka na nadejście sygnału. Metoda blokuje kod aż  do momentu gdy w jakimś miejscu kodu zostanie wysłane zdarzenie...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Synchronizacja wątków(AutoResetEvent, ManualResetEvent, Interlocked), część 3

Inne 5378 dni, 8 godzin temu pzielinski 39 pokaż kod licznika zwiń

Wczytywanie artykułów...