Middle
Kuidas toimivad C#-s async märksõna ja await operaator?
sobes.tech AI
Vastus AI-lt
async märgib meetodi kui asünkroonset, võimaldades kasutada await selles. See ei tee meetodit ise asünkroonseks, kuid võimaldab kompilaatoril genereerida olekumasina, mis haldab täitmist.
await kasutatakse enne väljendit, mis tagastab Task või Task<T>. See peatab praeguse async meetodi täitmise kuni oodatava ülesande lõpetamiseni, ilma täitmisniiti blokeerimata. Pärast ülesande lõpetamist jätkub meetodi täitmine pärast await. Kui ülesanne tagastab tulemuse (Task<T>), tagastab await selle tulemuse.
public async Task<int> GetDataAsync()
{
// Asünkrooniline operatsioon
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// Jätkub pärast `GetStringAsync` lõpetamist
// Tulemuse töötlemine
return result.Length;
}