.Net Interview Question: How to avoid Deadlock in Threading?

There are so many ways Microsoft has provided by which you can reduce deadlocks. Example Monitor, Interlocked classes, Wait handles, Event raising from one thread to other thread and using ThreadState property you can poll and act accordingly.