/ / Szukasz .NET 4 ThreadPool [closed] - c #, wielowątkowość, .net-4.0, threadpool

Szukasz .NET 4 ThreadPool [closed] - c #, wielowątkowość, .net-4.0, threadpool

Szukam dobrej implementacji ThreadPool. Rozumiem, że .NET ThreadPool został przepisany / poprawiony w .NET 4, ale wątpię, czy odpowiada moim potrzebom.

Mam różną liczbę zadań, które muszą byćwykonywane równolegle. Chcę być w stanie kontrolować maksymalną liczbę wątków, które działają na te zadania, i jeśli to możliwe, być w stanie priorytety zadań. Nieaktywne wątki powinny być usuwane, a nowe wątki powinny być tworzone w razie potrzeby, do określonego minimum / maksimum.

Jak rozumiem, nie mogę kontrolować liczby wątków używanych przez .NET ThreadPool w procesie mój zadania (nie chcę wpływać na resztę aplikacji, tj. delegatów) i nie mogę przypisać wielu wątków do pracy tylko nad moimi zadaniami.

Moje pytania to:

  • Czy istnieje sposób na wykorzystanie .NET ThreadPool w moim scenariuszu?
  • Jeśli nie, to jakie dobre (najlepiej bezpłatne) implementacje ThreadPool są tam, na które powinienem zwrócić uwagę? (.NET Framework 4 i zgodny z Windows Azure)

EDYTOWAĆ: Dodano zmienną liczbę wątków jako wymaganie.

Odpowiedzi:

2 dla odpowiedzi № 1

Powinieneś rzucić okiem na tę bibliotekę.

http://smartthreadpool.codeplex.com/


2 dla odpowiedzi nr 2

Myślę, że szukasz System.Threading.Klasa Tasks.Task. Uproszczone, to tak jak przy użyciu ThreadPool, ale przywraca zadania, które mają podobny interfejs API do wątków. Nie myśl, że możesz priorytetować zadania, ale powiedziałeś, że chcesz uruchamiać różne rzeczy równolegle.


1 dla odpowiedzi nr 3

Piękno wdrożenia ThreadPool jest jego zdolność reagowania na obciążenie basenu przez zwiększanie / zmniejszanie jego rozmiaru puli.

Jeśli nie masz takiego wymogu (stała liczba wątków działa dla ciebie), wtedy możesz nie potrzebować rozbudowanej puli wątków. Więc wszystko, czego możesz potrzebować, to proste tworzenie klas i zarządzanie wątkami.


1 dla odpowiedzi nr 4

Może Partitioner może ci pomóc?

Więcej informacji na temat korzystania z niego można znaleźć na stronie Wzory do programowania równoległego: Zrozumienie i stosowanie wzorów równoległych w środowisku .NET Framework 4.