Sobes.tech
Middle

Kako funkcionišu ključne reči async i await u C#?

sobes.tech АИ

Одговор од АИ

async označava metod kao asinhroni, omogućavajući korišćenje await unutar nje. To ne čini samu metodu asinhronom, ali omogućava kompilatoru da generiše mašinu stanja koja će upravljati izvršenjem.

await se koristi pre izraza koji vraća Task ili Task<T>. On zaustavlja izvršenje trenutne async metode dok se očekivani zadatak ne završi, bez blokiranja niti izvršenja. Nakon završetka zadatka, izvršenje metode se nastavlja od mesta nakon await. Ako zadatak vraća rezultat (Task<T>), await vraća taj rezultat.

public async Task<int> GetDataAsync()
{
    // Asinhrona operacija
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // Nastavak nakon što GetStringAsync završi
    // Obrada rezultata
    return result.Length; 
}