Question - Name some of the most common places to look for a Deadlock in C#.
Answer -
For recognizing deadlocks, one should look for threads that get stuck on one of the following:
- .Result, .GetAwaiter().GetResult(), WaitAll(), and WaitAny() (When working with Tasks)
- Dispatcher.Invoke() (When working in WPF)
- Join() (When working with Threads)
- lock statements (In all cases)
- WaitOne() methods (When working with AutoResetEvent/EventWaitHandle/Mutex/Semaphore)