Estoy investigando el uso de la Task Parallel Library para un proyecto de trabajo que estoy haciendo y quiero entender las ventajas/desventajas de las tareas de ejecución prolongada. Todavía no tengo un ejemplo de la vida real, solo quiero entender la teoría detrás de esto.Task Parallel Library - Tarea LongRunning vs Multiple Continuations
Según lo que dicen las páginas de MSDN sobre task schedulers y este SO question, parecería que es mejor evitar las tareas de larga ejecución tanto como sea posible para que no se creen subprocesos fuera de ThreadPool. Pero digamos que tenía una tarea que se va a tardar mucho tiempo en completarse, en lugar de esto:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
Podría tratar de dividir el trabajo en partes más pequeñas, las unidades más rápidas de trabajo y utilizar continuaciones de tareas, como esto:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
¿Este enfoque sería más beneficioso o es excesivo para lo que está tratando de lograr?
Realmente depende de lo que quieres decir con * long *. –