Task, async, await METÓ DY VÝPOČTOVEJ INTELIGENCIE A C# FA K ULTA E L E K T ROTECHNIKY A INFORMATIKY S LOVENSKÁ T E CHNICKÁ U NIVERZITA

Podobné dokumenty
Operačný systém Úvodná prednáška

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Používateľská príručka k aplikácii na SOČ

TomTom Referenčná príručka

Základy algoritmizácie a programovania

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

SKLADOVÁ INVENTÚRA 1 VYTVORENIE INVENTÚRY. 1.1 Nastavenie skladovej inventúry

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

KOMISNÝ PREDAJ. Obr. 1

Ružové obrázkové slová skladanie slov z písmen

P R O L U C. POZNÁMKY individuálnej účtovnej závierky pre rok 2014

Organizačné štruktúry.

Prevody z pointfree tvaru na pointwise tvar

Obr. 1 - názov podpísaného súboru/kontajnera v sivej lište

Účtovná dokumentácia. Obsah a forma účtovného záznamu

Modré obrázkové slová skladanie slov z písmen

Pracovnoprávny vzťah závislá práca

Microsoft Outlook. Stručný prehľad základných funkcií. Ing.Anna Grejtáková, SPP DFBERG

POSTUP GENEROVANIA ŽIADOSTI O KVALIFIKOVANÝ CERTIFIKÁT POMOCOU PROGRAMU COMFORTCHIP.

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ. Metodika verzií zdrojového kódu

Dodanie tovaru a reťazové obchody Miesto dodania tovaru - 13/1

Inventúra účtov- základný popis.

Prekrývanie smerníc a súbežná aplikácia viacerých smerníc pri posudzovaní zhody strojových zariadení

Návrh, implementácia a prevádzka informačného systému

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

INTERNET BANKING. Platby cez Internet banking VŠETKO, ČO JE MOŽNÉ. with.vub.sk, Bank of

Nepremeškajte šancu a doprajte svojmu dieťaťu, aby sa naučilo jazyk, ktorý v živote určite využije!

MS OFFICE OUTLOOK 2007

Modul PROLUC Podvojné účtovníctvo

Téma : Špecifiká marketingu finančných služieb

Paralelní a asynchronní programování. Zdeněk Jurka

EG Informácie okolo nás 2. ročník

Total Commander. Základné nastavenia

Zverejnené informácie k nevyčerpaným prostriedkom z plateného portálu.

Mobilná aplikácia pre zaznamenávanie údajov systému HACCP

Blokové a prúdové šifry

Pracovné prostredie MS EXCEL 2003.

Kataster. Kataster. Kataster Kataster Kataster. Kataster Kataster Kataster Kataster. Kataster

AKO PRIPRAVIŤ MONEY S4 / S5 NA NOVÝ ÚČTOVNÝ ROK

Hair Clinic Daniela s.r.o.

OBCHOD MARKETING PSYCHOLÓGIA A ETIKA PREDAJA

Jemný úvod do spracovania XML

Preprava lítiových batérií. Začať

1. Delenie funkcionálnych vrstiev. 2. Vrstva dopytu

KEO - Register obyvateľov Prevod údajov

Dell S2718H/S2718HX/S2718HN/ S2718NX Dell Display Manager Návod na obsluhu

Elektronické odosielanie výplatných pások

Spracovanie informácií

Kajot Casino Ltd. Popis hry Turbo 27

Čo ak program potrebuje pamäť, ktorej veľkosť závisí od konkrétneho vstupu?

Základy algoritmizácie a programovania

Kontrola väzieb výkazu Súvaha a Výkaz ziskov a strát Príručka používateľa

1. ročník konferencie: Ing. arch. Darina Lalíková, CSc. Vydavateľstvo EUROSTAV

2. PRIDANIE ZÁVEREČNEJ PRÁCE DO EVIDENCIE ZÁVEREČNÝCH PRÁC (EZP) A OZNAČENIE PRÁCE AKO FINÁLNEJ.

Názov: Osmóza. Vek žiakov: Témy a kľúčové slová: osmóza, koncentrácia, zber dát a grafické znázornenie. Čas na realizáciu: 120 minút.

Vaše úsilie zmeníme na úspech!

Vytvorenie používateľov a nastavenie prístupov

Erasmus+ Online jazyková podpora (OLS) Využite svoj pobyt Erasmus+ naplno!

Predstavenie. plk. Ing. Janiga Jozef riaditeľ Horská záchranná služba

P R O L E M FAKTURA Z VYDAJA OBSAH. Vystavenie faktúry z výdaja postup, podmienky... 2

Na rokovanie obecného zastupiteľstva dňa

Predaj cez PC pokladňu

Používateľská príručka: MOODLE

PROJEKTOVANIE ENERGETICKY HOSPODÁRNYCH

Webové služby a bezpečnosť. Jan Jusko

AIS2 Hodnotenie študentov po skúške POMÔCKA PRE VYUČUJÚCICH

Prístupnosť elektronických dokumentov vo formáte PDF

Pokyny pre písanie práce ŠVOČ. Odporúčané nastavenia. Štruktúra práce

[1] ICAReNewZEP v1.2 Užívateľská príručka

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

Študijné plány platné pre študentov v akademikom roku 2018/2019

DIZAJN MANUÁL KULT MINOR LOGO MANUÁL. Fond na podporu kultúry národnostných menšín

ONLINE POBOČKA. pre zamestnávateľov MANUÁL

Žiadosť o finančný príspevok FORMULÁR. Program cezhraničnej spolupráce Slovenská republika Česká republika

OBCHODNÍK ROKA Název kategorie. Logo Obchodník roku používajte v prípade všetkých materiálov podľa pravidel uvádzaných v tomto manuáli.

Základné prvky loga OPCHS

Na aute vyfarbi celé predné koleso na zeleno a pneumatiku zadného kolesa vyfarbi na červeno.

Cieľ ako nástroj na riadenie výkonnosti

Manuál pre používanie programu KonverziaXML_D134

Hair Clinic Daniela s.r.o.

Tlač do PDF a odosielanie dokladov cez . OBSAH

Rigips 4PROfesional. Viditeľne lepšie sadrokartónové dosky so zárukou rovinného povrchu konštrukcií UŽ ZAJTRA BEZ VIDITEĽNÝCH SPOJOV DOSIEK

Evidencia hrobov. Inštalácia programu

PENETRAČNÉ TESTY. Prevencia pred únikom dát

Ukladanie údajov a databázové systémy. Prof. MUDr. Martin Rusnák, CSc Prof. MUDr. Viera Rusnáková, CSc PhDr. Marek Psota, PhD

Prihlásenie do ibankingu

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Univerzita Komenského v Bratislave. Filozofická fakulta

NEINTERAKTÍVNA KOMUNIKÁCIA

Vážení používatelia programu WISP.

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

Integrovaný prístup v efektívnom vyučovaní vybraných slov

Virtuálna registračná pokladnica

Manuál Elektronická návratka

14 SEKUNDOVIEK O FOREXE 1. ČO JE TO FOREX?

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

Manuál Elektronická návratka

Transkript:

Task, async, await METÓ DY VÝPOČTOVEJ INTELIGENCIE A C# FA K ULTA E L E K T ROTECHNIKY A INFORMATIKY S LOVENSKÁ T E CHNICKÁ U NIVERZITA Ing. Ľuboš Galandák

Obsah prednášky Čo je to paralelizmus? Čo sú to tasky? Program workflow s použitím async a await Paralelné cykly Príklad aplikácie

Paralelizmus potreba vykonávať viaceré operácie naraz za cieľom dosiahnuť žiadaný výsledok v čo najrýchlejšom čase. ČO J E PA R A L E L IZMUS?

Inou formou paralelizmu je spracovávať náročnú operáciu paralelne. Na túto oblasť sa pozrieme neskôr. ČO J E PA R A L E L IZMUS?

Existuje však ešte tretí pohľad na paralelizmus keď potrebujeme vykonávať operácie na inom, ako UI threade, aby sme zabezpečili nevytuhnutie používateľského rozhrania. ČO J E PA R A L E L IZMUS?

Dokumentácia na msdn.microsoft.com je pomerne skúpa Task reprezentuje asynchrónnu operáciu. ČO SÚ TO TA SKY?

Thread jedná sa o OS level thread, máme nad ním plnú kontrolu, nevýhodou je, že jeho vytvorenie je náročné na systémové prostriedky. ČO SÚ TO TA SKY?

Task je v podstate abstrakciou, vytvorením Tasku nevytvárame automaticky OS thread. Všetko riadi ThreadPool. T HREAD VS TA S K

Spolu so zavedením Taskov zaviedol Microsoft abstrakciu, kde vytváranie Threadov už nie je starosťou programátora, ale zabezpečuje ho TaskScheduler v spolupráci s ThreadPoolom. ČO SÚ TO TA SKY?

Vytvorením Tasku zabezpečíme, že operáciu, ktorá je zaobalená Taskom, sa vykoná asynchrónne. Konštruktor: Task(Action) Task(Action, CancelationToken) Task(Action, CancelationToken, TaskCreationOptions)... ČO SÚ TO TA SKY?

Často používané metódy: ContinueWith(Action) Delay(Int32) Run(Action) Start() Wait() / WaitAll() ČO SÚ TO TA SKY?

Spolu s Taskami zaviedol Microsoft aj štandard označovania asynchrónnych operácií v podobe async a await. P R O G R A M WORKFLO W S POUŽITÍM A S Y NC A AWA I T

Príklady použitia keď UI nesmie ostať neresponzívne, ale my potrebujeme na pozadí získať / spracovať množstvo dát. P R O G R A M WORKFLO W S POUŽITÍM A S Y NC A AWA I T

Aplikačná oblasť Prístup na web Práca so súbormi Práca s obrázkami WCF API obsahujúce asynchrónne metódy HttpClient, SyndicationClient StorageFile, StreamWriter, StreamReader, XmlReader MediaCapture, BitmapEncoder, BitmapDecoder Synchrónne a Asynchrónne operácie P R O G R A M WORKFLO W S POUŽITÍM A S Y NC A AWA I T

každá async metóda, ak má byť asynchrónna, musí obsahovať await asynchrónna metóda (s výnimkou event handlera) musí byť typu Task, alebo Task<T> operácie medzi definíciou Tasku a await bežia synchrónne P R O G R A M WORKFLO W S POUŽITÍM A S Y NC A AWA I T

Tip k Async Await: Skoro všetky moderné API poskytujú Async metódy (napr. GetStringAsync). Pre zrýchlenie behu programu sa odporúča používať vždy tieto metódy namiesto ich synchrónnych alternatív. Ich názov končí kľúčovým slovom Async. Pri písaní vlastných asynchrónnych metód sa tiež odporúča doplniť ich názov označením Async. P R O G R A M WORKFLO W S POUŽITÍM A S Y NC A AWA I T

Majme pomerne náročný algoritmus spracovania dát, ktorý k tomu beží vo for cykle s mnohými opakovaniami. Pre tento účel použijeme v C#: Parallel.For(int start, int end, Action body) PA R A L E LNÉ CYKLY

Parallel.ForEach() Parallel.ForEach<TSource> Method (I Enumerable<TSource>, Action<TSource, ParallelLoopState, Int64>) PA R A L E LNÉ CYKLY

Paralelné metódy sa zdajú byť univerzálnym spôsobom ako zrýchliť beh programu, ale pozor!!! Vytvorenie Threadov (pomocou ThreadPoolu) je náročná operácia a zaberie značné množstvo systémových prostriedkov, preto si treba vždy vopred zvážiť, či je paralelizmus naozaj vhodný a naozaj zrýchli beh programu. V opačnom prípade použijeme klasický for, prípadne foreach. D O B R Á R A DA NA Z ÁVER

https://msdn.microsoft.com/enus/library/system.threading.tasks.parallel_methods(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/mt674882.aspx https://msdn.microsoft.com/enus/library/system.threading.tasks.taskscheduler(v=vs.110). as px https://msdn.microsoft.com/enus/library/system.threading.tasks.task(v=vs.110).aspx Z D R OJ E