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