Programowanie wątkowe i asynchroniczne

Programowanie wątkowe i asynchroniczne umożliwia aplikacji wykonywanie asynchronicznej pracy w równoległych wątkach bez blokowania interfejsu użytkownika.

Aplikacja może używać puli wątków do wykonywania asynchronicznej pracy w równoległych wątkach. Pula wątków zarządza zestawem wątków i używa kolejki do przypisywania zadań do wątków, gdy stają się one dostępne. Pula wątków jest podobna do asynchronicznych wzorców programowania dostępnych w środowisko wykonawcze systemu Windows, ponieważ może służyć do wykonywania rozszerzonej pracy bez blokowania interfejsu użytkownika, ale pula wątków oferuje większą kontrolę niż wzorce programowania asynchronicznego i można jej użyć do wykonania wielu elementów roboczych równolegle. Pulę wątków można użyć do:

  • Przesyłanie elementów roboczych, kontrolowanie ich priorytetu i anulowanie elementów roboczych.
  • Planowanie elementów roboczych przy użyciu czasomierzy i okresowych czasomierzy.
  • Zarezerwuj zasoby na potrzeby krytycznych zadań.
  • Uruchom elementy robocze w odpowiedzi na nazwane zdarzenia i semafory.

Pula wątków jest wydajniejsza w zarządzaniu wątkami, ponieważ zmniejsza obciążenie związane z tworzeniem i niszczeniem wątków. Ma on dostęp do optymalizacji wątków na wielu rdzeniach procesora CPU i może równoważyć zasoby wątków między aplikacjami i po uruchomieniu zadań w tle. Korzystanie z wbudowanej puli wątków jest wygodne, ponieważ koncentrujesz się na pisaniu kodu, który wykonuje zadanie zamiast mechaniki zarządzania wątkami.

Temat Opis
Najlepsze rozwiązania dotyczące korzystania z puli wątków Najlepsze rozwiązania dotyczące pracy z pulą wątków.
Wywoływanie asynchronicznych interfejsów API w języku C# lub Visual Basic Jak używać asynchronicznych interfejsów API w języku C# lub Visual Basic w aplikacji Windows.
Tworzenie okresowego elementu roboczego Jak utworzyć element roboczy, który okresowo powtarza się.
Przekaż element roboczy do puli wątków Jak pracować w osobnym wątku, przesyłając element roboczy do puli wątków.
Przesyłanie elementu roboczego przy użyciu czasomierza Jak utworzyć element roboczy uruchamiany po upływie czasomierza.