Junior — Middle
Care este diferența dintre mecanismele yield și async/await în lucrul cu asincronia în programare?
sobes.tech AI
Răspuns de la AI
yield și async/await sunt mecanisme diferite pentru lucrul cu asincronia și fluxurile de date:
-
yield este utilizat în iteratori și generatoare pentru a emite valori etapizat fără a crea o listă completă imediat. Acest lucru permite crearea de secvențe leneșe.
-
async/await este o sintaxă pentru simplificarea lucrului cu operațiuni asincrone, permițând scrierea de cod care arată ca sincron, dar se execută asincron.
Exemplu de utilizare a yield în C#:
IEnumerable<int> GenerateNumbers() {
for (int i = 0; i < 5; i++) {
yield return i; // returnează o valoare la fiecare iterație
}
}
Exemplu de async/await:
async Task<string> GetDataAsync() {
await Task.Delay(1000); // întârziere asincronă
return "Date";
}
Astfel, yield gestionează emiterea secvențială a datelor, iar async/await gestionează execuția asincronă a operațiunilor.