Osnova sekce

    • Co to je asynchronní programování?

      Asynchronní programování umožňuje spouštět časově náročné úkoly, aniž by došlo k zaseknutí celé aplikace [1]. Hlavní myšlenkou je neblokování uživatelského rozhraní – v souladu s principy návrhu responzivních aplikací [2] program nemusí nečinně čekat na dokončení operace a "zamrznout". Místo toho může uživatel s aplikací dále pracovat a kód bude pokračovat ve vykonávání až ve chvíli, kdy je úkol na pozadí úspěšně dokončen [3].

      V jazyce C# a na platformě .NET [3] se asynchronní programování realizuje pomocí dvojice klíčových slov async a await. Zápis public async Task StahujData() říká kompilátoru: "Tato metoda bude trvat dlouho, ale chci, aby se prováděla na pozadí a neblokovala zbytek aplikace" [3].

      Klíčová slova a třídy

      Klíčové slovo async – modifikátor, který se píše do hlavičky metody. Označuje, že daná metoda bude obsahovat asynchronní operace [1]. Zapisujeme způsobem public async Task NazevMetody() { ... }.

      Klíčové slovo await – příkaz, který se používá uvnitř asynchronní metody před voláním dlouhotrvající operace. Slouží k tomu, aby program na tomto řádku "počkal" na výsledek, ale zároveň uvolnil procesor pro jinou práci (např. vykreslování UI) [3]. Zapisujeme způsobem await DlouhaOperace();.

      Třída Task – speciální návratový typ pro asynchronní metody, který reprezentuje "úlohu", která se právě vykonává [1]. Nahrazuje klasický void (pro metody bez návratové hodnoty) nebo balí výsledek do "obálky" (např. Task<int>) [3]. Zapisujeme způsobem public async Task<string> NactiText().

    • Jednoduchý úkol, který objasňuje základní principy asynchronního programování

    • Jednoduchý úkol, který ukazuje rozdíl mezi asynchronním a synchronním programováním

    • Zdroje použité v textu