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)