Have you tried option of async and await feature of C# 5.0 and .Net 4.5?
This is link has example of how to do it
Asynchronous Programming in C# 5.0 using async and await
For more details you can refer to book
•C# 5.0 in a nutshell: Joseph Albahari (Author), Ben Albahari (Author)
Let me know if this helps you....