Badam wykorzystanie biblioteki zadań równoległych do projektu roboczego, który robię i chcę zrozumieć zalety/wady długotrwałych zadań. Nie mam jeszcze prawdziwego przykładu, chcę tylko zrozumieć teorię.Biblioteka zadań równoległych - zadanie LongRunning vs wielokrotne kontynuacje
Z tego, co mówią strony MSDN o task schedulers i SO question, wydaje się, że najlepiej jest unikać długotrwałych zadań w jak największym stopniu, tak aby nie tworzyć wątków poza wątkiem ThreadPool. Ale mówią, że miał zadanie który zajmie dużo czasu, aby zakończyć, zamiast tego:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
można spróbować i podzielić się swoją pracę w mniejszych, szybszych jednostek pracy i używać kontynuacje zadań, jak to:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
Czy takie podejście byłoby bardziej korzystne, czy też jest przesadą w stosunku do tego, co próbuje osiągnąć?
To naprawdę zależy od tego, co masz na myśli przez * długi *. –