Multithreading in C# 5.0 cookbook - Agafonov, Eugene.