Junior — Middle
V čem spočívá rozdíl mezi mechanismy yield a async/await při práci s asynchronními operacemi v programování?
sobes.tech AI
Odpověď od AI
yield a async/await jsou různé mechanismy pro práci s asynchronností a datovými proudy:
-
yield se používá v iterátorech a generátorech k postupnému vydávání hodnot bez okamžitého vytváření úplného seznamu. To umožňuje vytváření líných sekvencí.
-
async/await je syntaxe pro zjednodušení práce s asynchronními operacemi, umožňující psát kód, který vypadá jako synchronní, ale je vykonáván asynchronně.
Příklad použití yield v C#:
IEnumerable<int> GenerateNumbers() {
for (int i = 0; i < 5; i++) {
yield return i; // vrací hodnotu při každé iteraci
}
}
Příklad async/await:
async Task<string> GetDataAsync() {
await Task.Delay(1000); // asynchronní zpoždění
return "Data";
}
Tedy, yield řídí sekvenční vydávání dat, zatímco async/await řídí asynchronní provádění operací.