Junior — Middle
Este posibil să efectuați o operație asincronă în mod sincron și cum este posibil acest lucru?
sobes.tech AI
Răspuns de la AI
Da, este posibil să realizați o operațiune asincronă în mod sincron, forțând firul curent să aștepte finalizarea sarcinii asincrone. În C#, acest lucru se face adesea folosind metoda Task.Wait() sau proprietatea Task.Result, care blochează execuția până se obține rezultatul.
Exemplu:
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> AsyncOperation()
{
await Task.Delay(1000); // simulare de muncă asincronă
return 42;
}
static void Main()
{
// Executarea unei operațiuni asincrone în mod sincron
int result = AsyncOperation().Result;
Console.WriteLine(result);
}
}
Totuși, trebuie avut grijă, deoarece această abordare poate duce la blocaje, mai ales în aplicațiile UI. Este mai bine să folosiți cod complet asincron sau să aplicați metode precum GetAwaiter().GetResult() pentru a evita problemele.