Kā tiek izmantots atslēgas vārds await C#?
sobes.tech AI
Atbilde no AI
Atslēgvārds await C# tiek izmantots asinhronās operācijas nepārtrauktai gaidīšanai.
await izmantošana ir iespējama tikai asinhronos métodos, kas ir atzīmēti ar modifikatoru async.
Kad izpilde sasniedz await operatoru, vadības plūsma tiek atgriezta izsaucējam, un metode "apstājas" līdz gaidāmā uzdevuma pabeigšanai. Pēc uzdevuma pabeigšanas izpilde atsākas no vietas, kur tā tika pārtraukta.
Tas ļauj atbrīvot izsaucējošo pavedienu (piemēram, lietotāja saskarnes pavedienu vai tīmekļa servera pavedienu), lai veiktu citas darbības, uzlabojot lietojumprogrammas atsaucību un mērogojamību.
public async Task<string> GetDataAsync()
{
// Ilgstošas asinhronas operācijas imitācija
await Task.Delay(2000);
return "Dati ir saņemti";
}
public async Task ProcessDataAsync()
{
Console.WriteLine("Sākas apstrāde...");
string result = await GetDataAsync(); // Gaidām GetDataAsync pabeigšanu bez bloķēšanas
Console.WriteLine($"Rezultāts: {result}");
Console.WriteLine("Apstrāde pabeigta.");
}
Atslēgvārds await var tikt lietots ar:
- Uzdevumiem (Task, Task<T>, ValueTask, ValueTask<T>): Visbiežāk sastopamais gadījums.
- Gaidāmajiem tipiem: Objektus, kuriem ir metode
GetAwaiter(), kas atgriež tipu ar metodēmIsCompleted,GetResult()unOnCompleted()(lai atbalstītu turpinājumu).
await lietošana padara asinhrono kodu lasāmāku un līdzīgu sinhronajam, izvairoties no nepieciešamības rakstīt turpinājuma kodu vai izmantot atpakaļzvanus (callbacks).