Como chamar um método assíncrono a partir de um síncrono em C#?
Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com um problema. Tenho uma aplicação WPF na qual uso Entity Framework para trabalhar com o banco de dados. Quero usar métodos assíncronos, como `ToListAsync()`, `SaveChangesAsync()`, para não bloquear a thread da UI.
No entanto, tenho um método síncrono existente que é chamado de uma biblioteca externa (por exemplo, um handler de evento de botão que não suporta async). Dentro desse método, preciso obter dados do banco de dados. Estou tentando chamar o método assíncrono `GetCustomersAsync()` da seguinte forma:
```csharp
public async Task
- > GetCustomersAsync()
{
using (var db = new MyDbContext())
{
return await db.Customers.ToListAsync();
}
}
public void ButtonClickHandler(object sender, EventArgs e)
{
// Erro! Não é possível usar await em um método síncrono
var customers = await GetCustomersAsync();
}
```
Entendo que não posso simplesmente adicionar `await` em