Mixing async and blocking (.Result, .Wait()) causes deadlocks. Go async all the way!
❌ Deadlock Prone:
public void DoWork()
{
var result = GetDataAsync().Result; // DEADLOCK risk!
}
public async Task GetDataAsync()
{
return await httpClient.GetFromJsonAsync(url);
}
✅ Proper Async:
public async Task DoWorkAsync()
{
var result = await GetDataAsync(); // No blocking!
}
public async Task GetDataAsync()
{
return await httpClient.GetFromJsonAsync(url);
}
Rule: Once you go async, stay async all the way up the call stack!
