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.