Sobes.tech
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í.