Sobes.tech
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.