Middle
Kaip veikia async raktažodis ir await operatorius C#?
sobes.tech AI
Atsakymas iš AI
async žymi metodą kaip asinchroninį, leidžiantį naudoti await jame. Tai nesukuria paties metodo asinchroniškumo, bet leidžia kompiliatoriui generuoti būsenos mašiną, kuri valdys vykdymą.
await naudojamas prieš išraišką, kuri grąžina Task arba Task<T>. Jis sustabdo dabartinio async metodo vykdymą iki kol laukiama užduotis bus užbaigta, neblokuodamas vykdymo siūlo. Po užduoties pabaigos, metodo vykdymas tęsiasi po await. Jei užduotis grąžina rezultatą (Task<T>), await tą rezultatą grąžina.
public async Task<int> GetDataAsync()
{
// Asinchroninė operacija
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Tęsiama po `GetStringAsync` pabaigos
// Rezultato apdorojimas
return result.Length;
}