Sto ricercando l'utilizzo della libreria parallela Task per un progetto di lavoro che sto facendo e voglio comprendere i vantaggi/gli svantaggi delle attività di lunga durata. Non ho ancora un esempio di vita reale, voglio solo capire la teoria alla base di questo.Attività Libreria parallela - Attività LongRunning vs Multiple Continuations
Da ciò che le pagine MSDN dicono su task schedulers e questo SO question, sembrerebbe come se fosse meglio evitare il più possibile le attività a esecuzione prolungata in modo che non si stiano creando thread al di fuori del ThreadPool. Ma dire che ha avuto un compito che stava andando a prendere un lungo periodo di tempo per completare, invece di questo:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
Potrebbe cercare di dividere il lavoro in piccoli, unità più veloci di lavoro e utilizzare continuazioni attività, come questo:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
sarebbe questo approccio sia più utile o è eccessivo per quello che sta cercando di raggiungere?
Dipende davvero da cosa intendi per * lungo *. –