Interfacing with Multithreading Patterns prior to TPL and C# 5.0