Diagnosing and Fixing C# Async/Await Deadlocks on UI and ASP.NET Threads
When a C# app freezes after calling .Result or .Wait on an async method, a deadlock is likely. This guide walks through diagnosing the blocking call, checking the SynchronizationContext, and applying fixes such as ConfigureAwait(false) or refactoring to async all the way.