Junior — Middle
È possibile eseguire un'operazione asincrona in modalità sincrona e come è possibile?
sobes.tech AI
Risposta dell'AI
Sì, è possibile eseguire un'operazione asincrona in modalità sincrona, facendo attendere il thread corrente il completamento del task asincrono. In C#, questo si ottiene spesso usando il metodo Task.Wait() o la proprietà Task.Result, che bloccano l'esecuzione fino a ottenere il risultato.
Esempio:
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> AsyncOperation()
{
await Task.Delay(1000); // simulazione di lavoro asincrono
return 42;
}
static void Main()
{
// Esecuzione di un'operazione asincrona in modalità sincrona
int result = AsyncOperation().Result;
Console.WriteLine(result);
}
}
Tuttavia, bisogna fare attenzione, perché questo approccio può portare a deadlock, specialmente nelle applicazioni UI. È meglio usare codice completamente asincrono o applicare metodi come GetAwaiter().GetResult() per evitare problemi.