Úkol rozdíl mezi asynchronním a synchronním programováním
Jednoduchý úkol, který ukazuje rozdíl mezi asynchronním a synchronním programováním
1. Zadání
Co je cílem zadání?
- Vytvoření třídy se dvěma metodami simulujícími časově náročnou práci – jednou synchronní blokující hlavní vlákno a druhou asynchronní.
- Napojení testovacího tlačítka na jednoduché počítadlo kliknutí, které slouží jako vizuální důkaz, zda aplikace reaguje na vstupy uživatele.
- Praktická demonstrace rozdílu v chování aplikace, kdy synchronní operace způsobí úplné zamrznutí, zatímco asynchronní přístup udrží aplikaci plně ovladatelnou.
Zadání
Vytvořte třídu Procesor, která bude simulovat časově náročnou operaci. Třída bude obsahovat dvě metody: synchronní metodu PracujTvrde, která využije příkaz Thread.Sleep() pro blokování vlákna a asynchronní metodu PracujChytreAsync, která využije příkaz Task.Delay() pro neblokující čekání.
V Razor komponentě vytvořte testovací prostředí, které bude obsahovat počítadlo kliknutí (tlačítko zvyšující číslo) a dvě tlačítka pro spuštění jednotlivých metod z třídy Procesor.
Aplikaci naprogramujte tak, abyste demonstrovali rozdíl v plynulosti uživatelského rozhraní. Cílem je ověřit, že při spuštění synchronní metody aplikace zamrzne a na počítadlo nelze klikat, zatímco při asynchronním běhu zůstane aplikace responzivní a s počítadlem lze i během vykonávání úlohy pracovat.
Příklad, jak by mohla stránka vypadat:
Pokud se okno nenačetlo, klikněte zde.