Junior — Middle
Est-il possible d'effectuer une opération asynchrone en mode synchrone et comment cela est-il possible?
sobes.tech IA
Réponse de l'IA
Oui, il est possible d'effectuer une opération asynchrone en mode synchrone, en forçant le thread actuel à attendre la fin de la tâche asynchrone. En C#, cela se fait souvent en utilisant la méthode Task.Wait() ou la propriété Task.Result, qui bloquent l'exécution jusqu'à obtenir le résultat.
Exemple :
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> AsyncOperation()
{
await Task.Delay(1000); // simulation de travail asynchrone
return 42;
}
static void Main()
{
// Exécution d'une opération asynchrone en mode synchrone
int result = AsyncOperation().Result;
Console.WriteLine(result);
}
}
Cependant, il faut faire attention, car cette approche peut conduire à un blocage, surtout dans les applications UI. Il est préférable d'utiliser du code entièrement asynchrone ou d'appliquer des méthodes comme GetAwaiter().GetResult() pour éviter les problèmes.