Sobes.tech
Junior — Middle

El lehet-e tekinteni egy módszert aszinkronnak, ha nem tartalmazza az await operátort?

sobes.tech MI

Válasz az MI-től

C#-ban egy async kulcsszóval deklarált módszer nem feltétlenül tartalmaz await utasítást. Ilyen módszer szintaktikailag aszinkronnak számít, de ha nincs benne await, akkor szinkron módon fut, és a fordító figyelmeztetést ad.

await nélkül a módszer nem fogja szüneteltetni a végrehajtást, és nem fogja kihasználni az aszinkronitás előnyeit; valójában olyan, mint egy normál módszer, amely Task vagy Task<T>-t ad vissza.

Példa:

public async Task<int> GetNumberAsync()
{
    return 42; // Nincs await, a módszer szinkron módon fog futni
}

Így a módszert deklaráció szerint aszinkronnak lehet tekinteni, de a valódi aszinkronitás csak akkor érhető el, ha a módszeren belül van await.