Sobes.tech
Middle

C# da async kalit so'zi va await operatori qanday ishlaydi?

sobes.tech AI

AIdan javob

async metodni asinxron qilib belgilaydi, bu esa unda await ishlatishga imkon beradi. Bu metodni o'zi asinxron qilmaydi, lekin kompilyatorga bajarilishni boshqaradigan yakuniy holat mashinasini yaratishga imkon beradi.

await Task yoki Task<T> qaytaradigan ifoda oldida ishlatiladi. U joriy async metodning bajarilishini kutadi, kutayotgan vazifa tugaguncha, bajarilayotgan oqimni bloklamasdan. Vazifa tugagach, metod awaitdan keyingi joydan davom etadi. Agar vazifa natija (Task<T>) qaytarayotgan bo'lsa, await bu natijani qaytaradi.

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

    // GetStringAsync tugagandan so'ng davom etadi
    // Natijani qayta ishlash
    return result.Length; 
}