Junior — Middle
Aký je rozdiel medzi výsledkami vykonávania asynchrónnej funkcie a synchronizovanej pomocou await?
sobes.tech AI
Odpoveď od AI
Asynchrónna funkcia v C# vracia objekt typu Task alebo Task<T>, ktorý predstavuje sľub výsledku, ktorý bude dostupný v budúcnosti. Pri volaní takejto funkcie pokračuje vykonávanie okamžite, bez čakania na výsledok.
Keď je použitý operátor await s asynchrónnou funkciou, vykonávanie aktuálnej metódy je pozastavené, kým sa úloha nedokončí, a potom je výsledok vrátený. Týmto spôsobom await umožňuje písať asynchrónny kód, ktorý vyzerá ako synchronný.
Príklad:
async Task<int> GetNumberAsync()
{
await Task.Delay(1000); // simulácia asynchrónnej operácie
return 42;
}
async Task Example()
{
var task = GetNumberAsync(); // spustené asynchrónne
int result = await task; // čaká na dokončenie a získa výsledok
Console.WriteLine(result);
}
Zhrnutie: asynchrónna funkcia vracia úlohu a await umožňuje získať výsledok úlohy, pozastavujúc vykonávanie metódy do jej dokončenia.