Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2030Uzasadnieniepotrzebywykorzystaniawątków
41
WaplikacjachdlaUWPmodelASTAdotyczytylkoiwyłączniegłównegowątku
aplikacji,czyliwątkuinterfejsuużytkownika.Natomiastpozostałewątkirobocze
działająnapodstawiemodeluMTA.Oznaczato,żewątekroboczymożeuzyskiwać
dostępdoobiektówinstancjonowanychwramachfunkcjiinnychwątkówroboczych.
2|3|Uzasadnieniepotrzebywykorzystaniawątków
Zostanieterazzaimplementowanaprzykładowaaplikacja,któraposłużydouzasad-
nieniapotrzebytworzeniawątkówdowykonywaniadługotrwałychoperacjiwtle.
Celemaplikacjibędzieoszacowaniewartościliczby
p
metodąMonteCarlo.Procedura
taopierasięnawzorzedefniującymstosunekpolapowierzchni,P
o
,kołaopromieniur
dopolapowierzchni,P
k,opisanegonanimkwadratu(obokur):
1=11=1.
P
P
o
k
p
4r2
r2
p
4
Dziękitemuwartośćliczby
p
możnaoszacowaćprobablistycznieprzezlosowe
generowaniewspółrzędnychpunktówianalizęichpołożenia.Stosunekliczbypunk-
tów,N
in
,znajdującychsięwewnątrzokręgudoliczbypunktów,N
out
,zlokalizowanych
pozaokręgiempozwalawówczaswyznaczyćwartośćliczby
p
wedługwzoru:
p
=411.
N
N
out
in
Wyniktegooszacowaniabędzietymlepszy,imwiększaliczbawygenerowanych
punktówN=N
in+N
out.
Wcelusprawdzenia,czywylosowanypunktowspółrzędnych(x,y)znajdujesię
wewnątrzokręgu,wystarczyobliczyćjegoodległośćdodpoczątkuukładuwspół-
rzędnych(x
0,y
0):
d=(xx
0)2+(yy
0)2,
anastępniesprawdzić,czydr.Dlauproszczeniapodczasimplementacjizakłada-
myokrągojednostkowympromieniu,r=1,orazx
0=y
0=0.Poszczególneetapy
implementacjipowyższegoalgorytmuwówczasnastępujące:
1.KorzystajączszablonuBlankApp(UniversalWindows)dlajęzykaC#,utwórz
projektaplikacjionazwieMonteCarloPi.
2.Utworzonyprojektuzupełnijoklasę
MonteCarlo
.Wtymceluwmenu
ProjectkliknijopcjęAddclass...iwkreatorzetworzenianowegoelementu
wpoluNamewpiszMonteCarlo.cs.
3.WplikuMonteCarlo.csumieśćpoleceniazlistingu2.1.
4.PrzejdźdoplikuMainPage.xamliwstawwnimznacznikiprzedstawionena
listingu2.2.
5.ZawartośćplikuMainPage.xaml.cszmodyfkujwedługwzoruzlistingu2.3.