I'm kind of new to threading in C# and had a couple of questions about what is out there:

* What are the ways to implement threads in C#? (i.e. I can think of two off the top: backgroundWorker, Thread, etc)

	+ How do you cause deadlock and if there is deadlock how do you get out of it (in C#)?
	+ How does backgroundworker get implemented? It seems to have an underlying set of methods, but I'd like to know what those methods and instantiations are...

Thanks!