Junior — Middle
Kā atšķiras asinhronas funkcijas un sinhronas funkcijas ar await izmantošanas rezultāti?
sobes.tech AI
Atbilde no AI
C# valodā asinhronā funkcija atgriež objekta tipu Task vai Task<T>, kas pārstāv solījumu par rezultātu, kas būs pieejams nākotnē. Izsaucot tādu funkciju, izpilde nekavējoties turpinās, nesagaidot rezultātu.
Kad tiek izmantots await operators ar asinhrono funkciju, pašreizējās metodes izpilde tiek pārtraukta līdz uzdevuma pabeigšanai, pēc tam tiek atgriezts rezultāts. Tādējādi await ļauj rakstīt asinhrono kodu, kas izskatās kā sinhrons.
Piemērs:
async Task<int> GetNumberAsync()
{
await Task.Delay(1000); // asinhronas operācijas imitācija
return 42;
}
async Task Example()
{
var task = GetNumberAsync(); // sākas asinhroni
int result = await task; // gaida pabeigšanu un saņem rezultātu
Console.WriteLine(result);
}
Kopsavilkums: asinhrona funkcija atgriež uzdevumu, un await ļauj iegūt uzdevuma rezultātu, pārtraucot metodes izpildi līdz tās pabeigšanai.