In order to understand Threads and Tasks better, I highly recommend to read through the following articles:
Managed Threading Best Practices
Synchronizing Data for Multithreading
ThreadPool Class
How to produce a Deadlock (avoid at all cost)