Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
46
Programowanieasynchroniczne
Rysunek2.1.PrzykładowywynikdziałaniaaplikacjiMonteCarloPi
2|4|Wątkiroboczeiwspółdzielonydostęp
dokomponentówinterfejsuużytkownika
InterfejsprogramistycznysystemuWindowsudostępniazestawprzydatnychklas
imetod,któreułatwiajątworzenieizarządzaniewątkamiroboczymi.oneza-
deklarowanewprzestrzeninazw
System.Threading.Tasks
.Jejpodstawowym
elementemjestklasa
Task
,którareprezentujeoperacjęasynchroniczną.Zostanie
onawykorzystanawtympodrozdzialedoprzeniesieniadługotrwałychobliczeń
dofunkcjiwątkuroboczego.Służydotegotakzwanapulawątków,którastanowi
zbiórkilkuwątkówtworzonychprzezsystempodczasuruchamianiadanegoprocesu
(aplikacji).Dziękitemuprogramistaniemusisamodzielnietworzyćwątkówizarzą-
dzaćnimi,awszystkiewskazanefunkcjekolejkowaneiuruchamianezgodnieze
wskazanympriorytetem.
Abyuruchomićobliczeniazwiązanezoszacowaniemliczby
p
wramachpuli
wątkówzarządzanych,wystarczywdefnicjimetodyButtonCalculatePi_Click
(listing2.3)zamienićwywołaniemetody
PerformCalculations
jejasynchroniczną
wersją
PerformCalculationsAsync
.Wszystkietezmiany,uwzględnionenalistingu2.4,
pokazują,żewceluuruchomieniametody
PerformCalculations
asynchronicznie
wystarczyskorzystaćzestatycznejmetodyRunklasyTask.Kolejkujeonawskazaną
proceduręwcelujejwykonaniawramachzarządzanejpuliwątków.