Sobes.tech
Junior — Middle

Mi a különbség az aszinkron függvény és az await használatával szinkron függvény végrehajtási eredményei között?

sobes.tech MI

Válasz az MI-től

A C#-ban az aszinkron függvény egy Task vagy Task<T> típusú objektumot ad vissza, amely egy ígéretet jelent egy eredményről, amely a jövőben elérhető lesz. Egy ilyen függvény hívásakor a végrehajtás azonnal folytatódik, anélkül, hogy várna az eredményre.

Amikor az await operátort aszinkron függvénnyel használjuk, az aktuális metódus végrehajtása szünetel, amíg a feladat be nem fejeződik, majd az eredmény visszaadásra kerül. Így az await lehetővé teszi az aszinkron kód írását, amely úgy néz ki, mint szinkron.

Példa:

async Task<int> GetNumberAsync()
{
    await Task.Delay(1000); // aszinkron művelet szimulálása
    return 42;
}

async Task Example()
{
    var task = GetNumberAsync(); // aszinkron indítás
    int result = await task;    // várakozás a befejezésre és az eredmény megszerzése
    Console.WriteLine(result);
}

Összefoglalva: az aszinkron függvény egy feladatot ad vissza, és az await lehetővé teszi a feladat eredményének megszerzését, miközben a metódus végrehajtása a befejezéséig szünetel.