Yesterday on SO, i saw a thread asking for a code which some what does this way. I mean, you (manager thread) start number of tasks using TPL APIs and once they are complete
There's no need to do this yourself at all - use continuations with Task.ContinueWith or Task
It also returns a task, so you can then continue when that's completed etc.
Oh, and you can give it a TaskScheduler
, so that from a UI thread you can say, "When this background task finishes, execute the given delegate on the UI thread" or similar things.
This is the approach that C# 5 async methods are built on.