Prosty opis wątków roboczych i we / wy w .NET

Bardzo trudno jest znaleźć szczegółowy, ale prosty opis wątków pracownika i wątków we .NET

Co jest dla mnie jasne w tym temacie (ale może nie być technicznie precyzyjne):

Wątki robocze to wątkipowinien zatrudnij CPU do swojej pracy;Wątki we / wy (zwane również „wątkami portu zakończenia”)powinien wykorzystaj sterowniki urządzeń do swojej pracy i zasadniczo „nie rób nic”, monitoruj tylko ukończenie operacji bez CPU.

Co nie jest jasne:

Chociaż metoda ThreadPool.GetAvailableThreads zwraca liczbę dostępnych wątków obu typów, wydaje się, że nie ma publicznego interfejsu API do planowania pracy dla wątku we / wy. Możesz ręcznie utworzyć wątek roboczy w .NET?Wydaje się, że pojedynczy wątek we / wy może monitorować wiele operacji we / wy. Czy to prawda? Jeśli tak, to dlaczego ThreadPool ma tak wiele dostępnych wątków we / wy?W niektórych tekstach czytam, że wywołanie zwrotne, wyzwalane po zakończeniu operacji we / wy jest wykonywane przez wątek we / wy. Czy to prawda? Czy nie jest to zadanie dla wątku roboczego, biorąc pod uwagę, że to wywołanie zwrotne jest działaniem procesora?Aby być bardziej szczegółowym - czy asynchroniczne strony ASP.NET wątków we / wy użytkownika? Czym dokładnie jest wydajność w przełączaniu pracy we / wy do oddzielania wątku zamiast zwiększania maksymalnej liczby wątków roboczych? Czy to dlatego, że pojedynczy wątek we / wy monitoruje wiele operacji? Lub Windows robi bardziej efektywne przełączanie kontekstu podczas korzystania z wątków we / wy?

questionAnswers(4)

yourAnswerToTheQuestion