Udostępnij za pośrednictwem


Programowanie wątkowe i asynchroniczne

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

Aplikacja może używać puli wątków do asynchronicznego wykonywania zadań w równoległych wątkach. Pula wątków zarządza zestawem wątków i używa kolejki do przypisywania elementów roboczych do wątków, gdy tylko stają się one dostępne. Pula wątków jest podobna do asynchronicznych wzorców programowania dostępnych w środowisku uruchomieniowym 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żywać do równoległego wykonywania wielu elementów roboczych. 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.

  • Przeznacz zasoby na kluczowe zadania.

  • 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. Oznacza to, że ma 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 a uruchamianiem 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
programowania asynchronicznego (aplikacji platformy UWP) W tym temacie opisano programowanie asynchroniczne na platformie uniwersalnej systemu Windows (UWP) i jego reprezentację w języku C#, microsoft Visual Basic .NET, rozszerzenia składników Visual C++ (C++/CX) i JavaScript.
programowanie asynchroniczne w języku C++/CX (aplikacje platformy UWP) W tym artykule opisano zalecany sposób używania metod asynchronicznych w języku C++/CX przy użyciu klasy task zdefiniowanej w przestrzeni nazw concurrency w pliku ppltasks.h.
Najlepsze rozwiązania dotyczące korzystania z puli wątków W tym temacie opisano najlepsze rozwiązania dotyczące pracy z pulą wątków.
Wywoływanie asynchronicznych interfejsów API w języku C# lub Visual Basic Platforma uniwersalna systemu Windows (UWP) zawiera wiele asynchronicznych interfejsów API w celu zapewnienia, że aplikacja będzie reagować, gdy działa, co może zająć dłuższy czas. W tym temacie omówiono sposób używania metod asynchronicznych z platformy UWP w języku C# lub Microsoft Visual Basic.
Tworzenie okresowego elementu roboczego Dowiedz się, jak utworzyć element roboczy, który jest powtarzany okresowo.
Prześlij element roboczy do puli wątków Dowiedz się, jak pracować w osobnym wątku, przesyłając element roboczy do puli wątków.
Przesyłanie elementu roboczego za pomocą czasomierza Dowiedz się, jak utworzyć element roboczy uruchamiany po upływie czasomierza.