Avatar ·

Comment exécuter de manière synchrone une méthode asynchrone Task<T> en C# ?

Bonjour à tous ! J'écris une application console en C# (.NET Framework 4.7.2) et j'ai rencontré un problème. J'ai une méthode asynchrone qui retourne Task : ```csharp public async Task GetDataAsync() { using (var client = new HttpClient()) { var result = await client.GetStringAsync("https://api.example.com/data"); return result; } } ``` Le problème est que j'appelle cette méthode depuis un contexte synchrone, par exemple depuis un constructeur de classe ou depuis la méthode Main (qui n'est pas async chez moi). Je ne peux pas rendre la méthode appelante asynchrone car cela casserait l'architecture (par exemple, un constructeur ne peut pas être async). J'ai essayé différentes approches : - `GetDataAsync().Result` — le programme se bloque (deadlock). - `GetDataAsync().GetAwaiter().GetResult()` — se bloque aussi. - `Task.Run(() => GetDataAsync()).Result` — fonctionne, mais je ne suis pas sûr que ce soit correct. Dites-moi comment exécuter correctement une méthode asynchrone de manière synchrone sans deadlocks et avec