Я изучаю использование параллельной библиотеки задач для рабочего проекта, который я делаю, и хочу понять преимущества/недостатки длительных задач. У меня пока нет примера для реальной жизни, просто хочу понять теорию этого.
Из того, что страницы MSDN говорят о планировщики задач и этот вопрос SO, казалось бы, лучше избегать длительных задач, насколько это возможно, чтобы вы не создавали потоки вне ThreadPool. Но скажите, что у вас была задача, которая собиралась занять много времени, вместо этого:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
Не могли бы вы попытаться разделить свою работу на более мелкие, более быстрые единицы работы и использовать продолжения задач, например:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
Будет ли этот подход более полезен или он будет излишним для того, чего он пытается достичь?