Cum se execută o funcție asincronă în contextul firelor de execuție?
sobes.tech AI
Răspuns de la AI
O funcție asincronă în C# este de obicei implementată folosind cuvintele cheie async și await. La apelarea unei astfel de funcții, se creează o sarcină (Task) care rulează independent de firul principal.
În interiorul unei funcții asincrone, la întâlnirea cu await, execuția este suspendată, iar controlul este returnat codului care a apelat. Când operațiunea așteptată se finalizează, execuția funcției continuă de la locul unde a fost suspendată.
Este important de menționat că asincronia nu implică neapărat crearea unui fir nou. Adesea, se folosește un singur fir care se comută între sarcini, fără a bloca firul principal de UI sau de procesare.
Exemplu:
public async Task<string> GetDataAsync()
{
var data = await DownloadDataAsync(); // încărcare asincronă
return data;
}
Aici, DownloadDataAsync pornește, iar firul nu este blocat în timp ce datele sunt încărcate.