Programowanie wielowątkowe i asynchroniczne w C#

Zwinny i płynny kod

Czego się nauczysz

  • Zrozumiesz podstawy i zaawansowane techniki wielowątkowości
  • Nauczysz się pisać asynchroniczny kod bez ryzyka deadlocków i race condition
  • Poprawisz wydajność swoich aplikacji i zapewnisz im lepszą responsywność

Zaawansowany

3 dni

Stacjonarnie/zdalnie

Certyfiktat ukończenia

Opis szkolenia

Współczesne aplikacje wymagają wydajnego przetwarzania danych, optymalnego zarządzania zasobami i responsywności. To szkolenie pokaże Ci, jak opanować wielowątkowość i asynchroniczność w C# w praktyczny i przystępny sposób

Program szkolenia

chevron-down
  • Podstawowe mechanizmy wielowątkowości
    • Wątek (Thread)
    • Pula wątków (ThreadPool)
  • Programowanie asynchroniczne
    • Abstrakcja wysokopoziomowa (Task)
    • Anulowanie zadań (CancellationToken)
    • Wyświetlanie postępu (Progress)
    • Synchronizacja zadań
    • Optymalizacja (ConfigureAwait)
    • Lżejsza alternatywa (ValueTask)
    • Asynchroniczne iterowanie po kolekcjach (IAsyncEnumerable)
    • Wzorzec async lazy
  • Kolekcje wielowątkowe
    • Bezpieczny słownik (ConcurrentDictionary)
    • Bezpieczna kolejka (ConcurrentQueue)
    • Kolekcja (ConcurrentBag)
    • Buforująca kolekcja dla wielowątkowości (BlockingCollection)
  • Synchronizacja wątków
    • Blokowanie dostępu do sekcji kodu (lock)
    • Bardziej zaawansowane zarządzanie blokadami (Monitor)
    • Synchronizacja międzyprocesowa (Mutex)
    • Ograniczanie liczby współbieżnych operacji (Semaphore i SemaphoreSlim)
    • Powiadamianie wątków o stanie (AutoResetEvent i ManualResetEvent)
    • Czekanie na zakończenie określonej liczby operacji (CountdownEvent)
    • Synchronizacja etapów wykonywania wątków (Barrier)
  • Kanały i przepływ danych
    • Wydajne przesyłanie danych między wątkami (System.Threading.Channels)
    • Wzorzec do przetwarzania danych w sposób wielowątkowy Producer-Consumer
  • Przetwarzanie równoległe (Parallel Programming)
    • Równoległe wykonywanie pętli (Parallel.For, Parallel.ForEach)
    • Równoczesne uruchamianie metod (Parallel.Invoke)
    • Równoległe zapytania LINQ (Parallel LINQ)
  • Wielowątkowość w ASP.NET
    • Tworzenie usług działających w tle (IHostedService)
    • Klasa bazowa dla usług w tle (BackgroundService)
    • Asynchroniczne zwalnianie zasobów (IAsyncDisposable)
    • Wielowątkowość w Blazor i gRPC
  • Bezpieczeństwo wątkowe
    • Zasady projektowania thread-safe kodu
    • Obiekty niezmienne (Immutable objects)
  • Testowanie kodu wielowątkowego
    • Testowanie metod asynchronicznych
    • Symulowanie problemów współbieżności
  • Praktyczne przykłady
    • Kolejka zadań w tle
    • Przetwarzanie dużych zbiorów danych
    • Przetwarzanie strumieni IoT
    • Reagowanie na zdarzenia UI

Prowadzący

Marcin Sulecki

Z wielką przyjemnością podzielę się z Tobą moją pasją oraz zgromadzonym przez ponad 25 lat doświadczeniem zawodowym. Jestem praktykiem. Specjalizuję się w tworzeniu zaawansowanych rozwiązań technologicznych m.in dla sektora logistyki i monitoringu pojazdów z użyciem .NET oraz Crystal Reports. Ponadto prowadzę zajęcia na Politechnice Warszawskiej na Wydziale Informatyki. Tworzę rozwiązania dla swoich klientów a zdobytym doświadczeniem dzielę się na szkoleniach. Zapraszam do współpracy i wymiany doświadczeń.

25+

Lat doświadczenia

300

Przeprowadzonych szkoleń

1000+

Uczestników

100

Godzin konsultacji

Skontaktuj się z nami

ul. Erazma Ciołka 10 lok. 229
01-402 Warszawa

Sulmar ul. Erazma Ciołka 10 lok. 229, 01-402 Warszawa

NIP 953-120-45-91 REGON 092599270

+48 609 851 649

marcin.sulecki@sulmar.pl