Have a long running set of discrete tasks: parsing 10s of thousands of lines from a text file, hydrating into objects, manipulating, and persisting.
If I were implement
You may want to look at the Task Parallel Library.
As of C# 5 this is built into the language using the async and await keywords.
async
await