Junior — Middle
Wat is het verschil tussen de mechanismen yield en async/await bij het werken met asynchroniteit in programmeren?
sobes.tech AI
Antwoord van AI
yield en async/await zijn verschillende mechanismen voor het werken met asynchroniteit en datastromen:
-
yield wordt gebruikt in iterators en generators om waarden stap voor stap uit te geven zonder meteen een volledige lijst te maken. Dit maakt het mogelijk om luie sequenties te creëren.
-
async/await is een syntax om het werken met asynchrone operaties te vereenvoudigen, waardoor je code kunt schrijven die er synchrone uitziet maar asynchroon wordt uitgevoerd.
Voorbeeld van het gebruik van yield in C#:
IEnumerable<int> GenerateNumbers() {
for (int i = 0; i < 5; i++) {
yield return i; // geeft bij elke iteratie een waarde terug
}
}
Voorbeeld van async/await:
async Task<string> GetDataAsync() {
await Task.Delay(1000); // asynchrone vertraging
return "Data";
}
Dus beheert yield de sequentiële uitgave van gegevens, terwijl async/await de asynchrone uitvoering van operaties regelt.