<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2polishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Eastgroup.pl</title>
    <description>Grupa .NET na UWM w Olsztynie</description>
    <link>http://eastgroup.pl/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.0.0.36</generator>
    <language>pl-PL</language>
    <blogChannel:blogRoll>http://eastgroup.pl/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>eastgroup</dc:creator>
    <dc:title>Eastgroup.pl</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/eastgroup" /><feedburner:info uri="eastgroup" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/eastgroup" src="http://www.bloglines.com/images/sub_modern11.gif">Zapisz w Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.netvibes.com/img/add2netvibes.gif">Dodaj do netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://buttons.googlesyndication.com/fusion/add.gif">Dodaj do Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Feastgroup" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
      <title>Spotkanie inauguracyjne 2011</title>
      <description>&lt;p&gt;Zapraszam na pierwsze,&amp;nbsp;inauguracyjne spotkanie grupy&amp;nbsp;w nowym semestrze, kt&amp;oacute;re odbędzie się w czwartek (13.10.2011) o godzinie 18:15 w sali D09.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=DEeb5RC6xdA:U8x8nYFKAI8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=DEeb5RC6xdA:U8x8nYFKAI8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=DEeb5RC6xdA:U8x8nYFKAI8:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=DEeb5RC6xdA:U8x8nYFKAI8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/DEeb5RC6xdA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/DEeb5RC6xdA/post.aspx</link>
      <comments>http://eastgroup.pl/post/Pierwsze-spotkanie-w-nowym-semestrze.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=961542e4-51da-4dcb-8824-119316d01b03</guid>
      <pubDate>Sun, 27 Feb 2011 13:37:00 +0100</pubDate>
      <category>Spotkania grupy</category>
      <dc:publisher>Dedloo</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=961542e4-51da-4dcb-8824-119316d01b03</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=961542e4-51da-4dcb-8824-119316d01b03</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Pierwsze-spotkanie-w-nowym-semestrze.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=961542e4-51da-4dcb-8824-119316d01b03</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=961542e4-51da-4dcb-8824-119316d01b03</feedburner:origLink></item>
    <item>
      <title>Nie śpij – programuj!</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;Jesteś zapalonym programistą i chętnie podejmujesz nowe wyzwania? Nie może Cię zabraknąć na eliminacjach do 24-godzinnego maratonu programistycznego! Razem z&amp;nbsp;przyjaci&amp;oacute;łmi stw&amp;oacute;rz trzyosobowy team i przekonaj się, jak wiele można zrobić w kr&amp;oacute;tkim czasie, gdy pracuje się razem. &lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;Og&amp;oacute;lnopolskie zawody programistyczne Deadline24 to prawdziwy test wytrzymałości, kreatywnego myślenia i interdyscyplinarnej wiedzy. Po przejściu eliminacji, najlepsze drużyny zostaną zaproszone na finał do Gliwic, gdzie czekać je będzie 24-godzinny programistyczny maraton.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Zawodnicy, odcięci od zewnętrznego świata, będą rywalizować między sobą, pisząc nietypowy program. O wygranej zadecyduje jakość wykonanej w tak kr&amp;oacute;tkim czasie pracy. Uczestnicy mogą uzbroić się w dowolny sprzęt i&amp;nbsp;oprogramowanie. Organizatorzy zapewniają każdej drużynie jedno gniazdko 230V i&amp;nbsp;dostęp do wirtualnej areny - serwera konkursowego. Liczy się inwencja i praca zespołowa. W pierwszej edycji konkursu zadaniem informatyk&amp;oacute;w była tresura żukoskoczk&amp;oacute;w - musieli opanować motywowanie, ruch, a nawet rozmnażanie tych stworzonek, by uratować świat przed zagładą i&amp;nbsp;negatywną energią. Tegoroczne zadanie będzie z pewnością nie mniej ekscentryczne.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;Udział w zawodach jest bezpłatny. Zar&amp;oacute;wno w&amp;nbsp;eliminacjach jak i w&amp;nbsp;finale uczestnicy pracują na swoim sprzęcie, mając pełną swobodę wyboru systemu operacyjnego, środowiska i języka programowania. Eliminacje trwają 5 godzin, odbywają się zdalnie. Drużyny otrzymują zadania i dane wejściowe do zadań. Celem jest wygenerowanie (w&amp;nbsp;dowolny spos&amp;oacute;b) odpowiedzi i przesłanie ich na serwer sprawdzający w wyznaczonym czasie. Finał trwa 24 godziny, odbywa się na Politechnice Śląskiej w&amp;nbsp;Gliwicach. Uczestnicy mogą korzystać ze wszelkich materiał&amp;oacute;w przyniesionych ze sobą, lecz dostęp do pomocy zewnętrznej jest zabroniony. Zadanie będzie miało charakter interaktywny, komunikacja z serwerem konkursowym będzie się odbywała za pomocą TCP/IP.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;Pomysł na organizację Deadline24 zrodził się na początku 2009 roku. Są to pierwsze tego typu zawody w Polsce. Organizatorami konkursu są: firma Future Processing i Politechnika Śląska. Strona www z poprzedniej edycji wraz z regulaminem, galerią, wynikami i&amp;nbsp;zadaniem konkursowym jest dostępna pod adresem &lt;a href="http://www.deadline24.pl"&gt;http://www.deadline24.pl&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;Filozofią konkursu jest przyciągnięcie do udziału pasjonat&amp;oacute;w programowania, oryginalnych, kreatywnych i&amp;nbsp;kompetentnych os&amp;oacute;b. Konkurs wyłoni młodych programist&amp;oacute;w o&amp;nbsp;nieprzeciętnych umiejętnościach, indywidualist&amp;oacute;w w akademickim świecie IT, utalentowanych ludzi z branży. Konkurs ma niestandardową formułę. Promuje ludzi o wyjątkowych zdolnościach programistycznych, działających w&amp;nbsp;nietypowych dla siebie warunkach.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align: justify;"&gt;Nagrody dla zwycięzc&amp;oacute;w będą r&amp;oacute;wnie niezwykłe, jak programistyczne zadanie, z&amp;nbsp;kt&amp;oacute;rym się zmierzą. Dobra zabawa gwarantowana! Eliminacje już 26 marca. Wejdź na stronę konkursu &lt;a href="http://www.deadline24.pl"&gt;http://www.deadline24.pl&lt;/a&gt;, zapoznaj się z regulaminem i aplikuj! Drużyny, kt&amp;oacute;re pomyślnie przejdą pierwszy etap, wezmą udział w maratonie programistycznym. Konkurs rozpocznie się w&amp;nbsp;Gliwicach 26&amp;nbsp;kwietnia i potrwa całą dobę.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=AYfQbz6o39E:bgmORevTEN8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=AYfQbz6o39E:bgmORevTEN8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=AYfQbz6o39E:bgmORevTEN8:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=AYfQbz6o39E:bgmORevTEN8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/AYfQbz6o39E" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/AYfQbz6o39E/post.aspx</link>
      <comments>http://eastgroup.pl/post/Nie-spij-–-programuj!.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=3408aeba-675a-4ecf-ac20-eee842da63b5</guid>
      <pubDate>Thu, 24 Feb 2011 14:55:00 +0100</pubDate>
      <category>Konkursy</category>
      <dc:publisher>Dedloo</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=3408aeba-675a-4ecf-ac20-eee842da63b5</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=3408aeba-675a-4ecf-ac20-eee842da63b5</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Nie-spij-–-programuj!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=3408aeba-675a-4ecf-ac20-eee842da63b5</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=3408aeba-675a-4ecf-ac20-eee842da63b5</feedburner:origLink></item>
    <item>
      <title>Windows Phone 7</title>
      <description>&lt;p align="justify"&gt;Tydzień temu (oraz jakiś czas temu) miałem przyjemność co nie co opowiedzieć o nowym systemie na urządzenia mobilne Microsoftu – Windows Phone 7. Ba nawet udało się wypożyczyć jeden telefon z Microsoftu – LG GW910, który widać na rysunku poniżej:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://eastgroup.pl/image.axd?picture=image_92.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://eastgroup.pl/image.axd?picture=image_thumb_95.png" width="504" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Przy okazji pożyczenia korzystam sobie z niego od dwóch tygodni i muszę przyznać, że nowy system i sam telefon spisuje się bardzo dobrze, jestem pozytywnie zaskoczony działanie. Nie sądziłem, że system na telefonie może tak szybko działa, przy tym tak stabilnie (jak na razie nie miałem żadnych problemów). No ale nie ma co się dziwić, jednak pod maską siedzi mały potwór jak na urządzenia mobilne (ostatnio dla wujka oddałem swój stary komputer, aby mógł sobie korzystać z Internetu, który ma parametry zbliżone do parametrów tego telefonu &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://eastgroup.pl/image.axd?picture=wlEmoticon-openmouthedsmile.png" /&gt; ).&lt;/p&gt;  &lt;p align="justify"&gt;No dobra ale wracając do mojej prezentacji (a dokładnie dwóch &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://eastgroup.pl/image.axd?picture=wlEmoticon-smile.png" /&gt; ). Ogólnie była podzielona na trzy części.&lt;/p&gt;  &lt;p align="justify"&gt;Podczas pierwszej opowiedziałem o samym telefonie i systemie, co pojawiło się nowego i dlaczego. Nie będę tutaj tego wszystkiego opisywał szczególnie, że w innych miejscach w Internecie można znaleźć opisy ale wspomnę o jednej rzeczy. Osobiście bardzo podoba mi się nowy interfejs użytkownika (tak zwane Metro wzorowane na istniejących metrach – kolejkach podziemnych &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://eastgroup.pl/image.axd?picture=wlEmoticon-smile.png" /&gt; ) zaproponowany przez Microsoft. Pamiętam kiedyś (bodajże na prezentacji z MIXa, gdzie po raz pierwszy został pokazany Windows Phone 7) jak na filmie widziałem nowy interfejs miałem co do niego mieszane uczucia, czy będzie fajny. Ale wystarczyło trochę poużywać nowy interfejs i bardzo przypadł mi do gustu. Bardzo szybko można się odnaleźć w nim i po chwili z nim bez problemów pracować.&lt;/p&gt;  &lt;p align="justify"&gt;Przy interfejsie też widać, że jednak Microsoft sporo czasu poświęcił na myślenie (nie wiem, czy gdzieś indziej ktoś na to wpadł, więc mogę się myli) ale zastanawialiście się, czemu domyślny interfejs Windows Phone 7 jest czarny? Okazuje się, że nie bez powodu. W telefonach z Windows Phone 7 wykorzystywane są wyświetlacze OLED, które jak “świecą” na czarno zużywają dużo mniej energii niż świecąc na jasno. W materiałach o Windows Phone 7 podaje się, że gdy właśnie ekran OLED “świeci” na czarno to zużywa połowę mniej energii niż identyczny ekran LCD, czyli jak widać znacznie mniej. Natomiast w przypadku świecenia jasno, tutaj ekrany OLED wypadają dużo gorzej niż ekran LCD – zużywa “tylko” trzy razy więcej energii niż ekran LCD. Więc widać to, że interfejs domyślnie jest ciemny to nie tylko widzi misie kogoś tam ale zamierzony cel, dzięki któremu telefon może działać dłużej na baterii.&lt;/p&gt;  &lt;p align="justify"&gt;Kolejną częścią prezentacji był Marketplace ale nie od strony zwykłego użytkownika ale od strony potencjalnego twórcy oprogramowania. Tutaj wspomnę tylko o dwóch rzeczach. Po pierwsze warto pisać aplikacje na Windows Phone 7, teraz jest ich bardzo mało w porównaniu np. z innymi systemami. Nie na ile w tej chwili te dane są aktualne ale z tego co się orientuje to w marketplace dla Windows Phone 7 aplikacji jest około 1500 tysiąca, natomiast w przypadku Androida jakiś czas temu widziałem informacje, że pękła liczba 100 tysięcy, czyli jak widać jest co nadgonić i co fajne od razu wrzucając aplikację do marketplace dystrybuowana jest ona globalnie.&lt;/p&gt;  &lt;p align="justify"&gt;Dodatkowo studenci aplikacje mogą wrzucać za darmo wystarczy mieć tylko konto w Dreamsparku, a takie konto może mieć każdy student. Niestety na razie tak różowo nie jest i jakimś cudem polscy studenci z tego nie mogą korzystać. Ale z tego co wiem to polski odział Microsoft pracuje nad tym, aby jednak dać możliwość studentom z Polski wrzucania aplikacji za darmo do marketplace. Jak coś więcej będę wiedział to na pewno dam znać &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://eastgroup.pl/image.axd?picture=wlEmoticon-smile.png" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Ostatnią częścią prezentacji był już sam Silverlight dla Windows Phone 7. Pokazałem kilka prostych dem, jak korzystać z tego co daje nam telefon i jak łatwo niektóre z nich osiągnąć. Nie będę tutaj opisywał dem (ale planuje to zrobić za jakiś czas na swoim blogu – &lt;a href="http://plawgo.pl"&gt;http://plawgo.pl&lt;/a&gt;). Jak ktoś byłby zainteresowany już teraz jak pisać aplikacje to mogę polecić dwa miejsca w sieci:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Trainig Kit dla Windows Phone 7, w którym znajduje się część dem, które pokazywałem i każdy może sobie ściągnąć, uruchomić i potestować - &lt;a title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ca23285f-bab8-47fa-b364-11553e076a9a&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ca23285f-bab8-47fa-b364-11553e076a9a&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ca23285f-bab8-47fa-b364-11553e076a9a&amp;amp;displaylang=en&lt;/a&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;darmową książkę o Windows Phone 7 autorstwa Charles Petzold, która opisuje jak tworzyć aplikacje dla Windows Phone 7 - &lt;a title="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx" href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx"&gt;http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx&lt;/a&gt;&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Dla wszystkich, którzy chcą tworzyć aplikacje dla Windows Phone 7 życzę powodzenia!!!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=NE85WMnQ48E:1uuDvoB2l-A:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=NE85WMnQ48E:1uuDvoB2l-A:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=NE85WMnQ48E:1uuDvoB2l-A:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=NE85WMnQ48E:1uuDvoB2l-A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/NE85WMnQ48E" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/NE85WMnQ48E/post.aspx</link>
      <comments>http://eastgroup.pl/post/Windows-Phone-7.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=2e5230ea-6770-4907-ac75-c4257b9c5660</guid>
      <pubDate>Tue, 30 Nov 2010 11:27:08 +0100</pubDate>
      <category>Techniczne</category>
      <category>Spotkania grupy</category>
      <dc:publisher>daniel.plawgo</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=2e5230ea-6770-4907-ac75-c4257b9c5660</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=2e5230ea-6770-4907-ac75-c4257b9c5660</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Windows-Phone-7.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=2e5230ea-6770-4907-ac75-c4257b9c5660</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=2e5230ea-6770-4907-ac75-c4257b9c5660</feedburner:origLink></item>
    <item>
      <title>Hasło - aplikacja MVVM</title>
      <description>&lt;html xmlns=""&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Na prezentacji pokazałem spos&amp;oacute;b tworzenia aplikacji WPF z wykorzystaniem Visual Studio, Blend i wzorca projektowego MVVM. Kod i slajdy będą na SkyDrive grupy. Dzisiaj chcę wam pokazać jak można wykonać podobną aplikacje kt&amp;oacute;ra może nam posłużyć do &amp;bdquo;wymyślania&amp;rdquo; haseł na konta ;p&lt;br /&gt;To do dzieła.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 115%; font-size: 14pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1 Tworzymy nowy projekt.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Nowy projekt utworzymy z wykorzystaniem Blenda. Jeżeli ktoś nie ma Blenda może śmiało to samo wykonać w Visual Studio. Uruchamiamy Blenda po czym w okienku kt&amp;oacute;re nam wyskoczyło naciskamy &lt;strong style="mso-bidi-font-weight: normal;"&gt;New Project. &lt;/strong&gt;Alternatywnie możemy zrobić to samo przez &lt;strong style="mso-bidi-font-weight: normal;"&gt;File-&amp;gt; New Project. &lt;/strong&gt;Wybieramy typ projektu jako WPF Application.&lt;strong style="mso-bidi-font-weight: normal;"&gt; &lt;/strong&gt;Nazywamy nasz projekt &lt;strong style="mso-bidi-font-weight: normal;"&gt;Haslo&lt;/strong&gt;, zapamiętujemy gdzie go zapisujemy i klikamy OK. &lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;img src="http://eastgroup.pl/image.axd?picture=2010%2f11%2f01v2.jpg" alt="" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 115%; font-size: 14pt;"&gt;&lt;span style="font-family: Calibri;"&gt;2 Projektujemy widok&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Powinno ukazać się nam okno domyślnie utworzone przez Blenda. Będziemy dążyć aby wygląd naszej aplikacji był taki jak niżej.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;img src="http://eastgroup.pl/image.axd?picture=2010%2f11%2f02.JPG" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Tworzyć nasz widok możemy na dwa sposoby, poprzez przeciąganie kontrolek(niekt&amp;oacute;rzy mogą preferować ten spos&amp;oacute;b) lub przez deklaracje bezpośrednio w kodzie. Ja osobiście wolę ta druga metodę wiec jej będziemy używać. Aby zobaczyć nasz kod klikamy na View-&amp;gt; Active Document View-&amp;gt; Split View ( będziemy widzieć kod i wygląd naszej aplikacji ).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Zabieramy się za tworzenie widoku.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Zaczynamy od zdefiniowania w naszym Gridzie dw&amp;oacute;ch wierszy do kt&amp;oacute;rych będziemy przypisywać kontrolki. Uzyskujemy to przez następujący kod:&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Auto"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="auto"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Następnie dodajemy dwa StackPanele. Jeden przypisujemy do pierwszego wiersza, drugi do drugiego.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;W pierwszym tworzymy Labela kt&amp;oacute;ry będzie nam wyświetlać losowane liczby. Wielkość czcionki ustawiamy na 40, wyśrodkowujemy w pionie i poziomie. Jego zawartość(Content) musimy połączyć z właściwością ViewModel kt&amp;oacute;ry będziemy tworzyć w dalszej części. Drugi StackPanel będzie troche bardziej złożony.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;W jego wnętrzu deklarujemy dwa kolejne StackPanele. W obu ustawiamy orientację na poziomą i wyr&amp;oacute;wnujemy w poziomie na środek. Do tej pory nasz fragment powinien wyglądać następująco.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; color: black; font-size: 9.5pt; mso-themecolor: text1;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Label&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Path&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=Liczby,&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;UpdateSourceTrigger&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=PropertyChanged}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="40"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; HorizontalContentAlignment&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Center"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VerticalContentAlignment&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Center"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="1"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Center"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Orientation&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Horizontal"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Button&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Command&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Start&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="45"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Start"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="25"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,0,10,0"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Button&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Command&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Stop&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="45"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Stop"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="25"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,0,10,0"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel &lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue;"&gt;="Center"&lt;/span&gt;&lt;span style="color: red;"&gt; Orientation&lt;/span&gt;&lt;span style="color: blue;"&gt;="Horizontal"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;&lt;/span&gt;Slider&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Value&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Slider&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Width&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="200"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="20"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,10,0,0" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Label&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Path&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=SliderValue,&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; UpdateSourceTrigger&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=PropertyChanged}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="18"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Postępujemy analogicznie jak w przypadku pierwszego. Wypełniamy drugi następującym kodem:&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="1"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Center"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Orientation&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Horizontal"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Button&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Command&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Start&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="45"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Start"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="25"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,0,10,0"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Button&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Command&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Stop&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="45"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Stop"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="25"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,0,10,0"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: red;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue;"&gt;="Center"&lt;/span&gt;&lt;span style="color: red;"&gt; Orientation&lt;/span&gt;&lt;span style="color: blue;"&gt;="Horizontal"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Slider&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Value&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Slider&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Width&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="200"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="20"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Margin&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="0,10,0,0" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Label&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Content&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Path&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=SliderValue,&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; UpdateSourceTrigger&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;=PropertyChanged}"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; FontSize&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="18"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: black; font-size: 6pt; mso-themecolor: text1;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Przy przyciskach pojawila się nowa właściwość &amp;ndash; Command.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Nasz widok powinien być już gotowy. P&amp;oacute;źniej będziemy musieli na chwile do niego wr&amp;oacute;cić alby połaczyć nasz ViewModel z przed chwila utworzonym widokiem. Budujemy nasz projekt (Ctrl+Shift+B)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 115%; font-size: 14pt;"&gt;&lt;span style="font-family: Calibri;"&gt;3 Visual Studio&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;W tej części zajmiemy się logika naszej aplikacji. Otwieramy w Visual Studio projekt kt&amp;oacute;ry wczesniej utworzyliśmy.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Na początku zajmiemy się utworzeniem naszego ViewModelu p&amp;oacute;źniej przystąpimy do klas kt&amp;oacute;re będą mu potrzebne. Tworzymy nowa klasę :&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;img height="292" width="599" src="http://eastgroup.pl/image.axd?picture=2010%2f11%2f03.jpg" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Nazywamy ją &lt;strong style="mso-bidi-font-weight: normal;"&gt;MainViewModel&lt;/strong&gt; i zatwierdzamy.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Nowo utworzona klasa musi implementować interfejs &lt;strong style="mso-bidi-font-weight: normal;"&gt;INotifyPropertyChanged&lt;/strong&gt;. Do tego potrzebne będzie nam dodanie przestrzeni nazw &lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;using System.ComponentModel&lt;/span&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-size: small;"&gt;) . Aby przyśpieszyć sobie prace Visual Studio zaimplementuje go za nas. Klikamy prawym przyciskiem myszki na przed chwila zadeklarowanej implementacji, wybieramy Implement Interface -&amp;gt; Implement Interface.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;img height="98" width="584" src="http://eastgroup.pl/image.axd?picture=2010%2f11%2f04v2.jpg" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Dodajemy metodę kt&amp;oacute;ra będzie wywoływana przy każdej zmianie jakiejkolwiek właściwości. Będzie nam to potrzebne aby nasz widok m&amp;oacute;gł się zorientować, że zmiana miała miejsce i należy jego dane zaktualizować.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; PropertyChangedInvoker(&lt;span style="color: blue;"&gt;string&lt;/span&gt; name)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;nbsp; &amp;nbsp; if&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; (PropertyChanged != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PropertyChanged(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;PropertyChangedEventArgs&lt;/span&gt;(name));&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;br /&gt;Teraz kolej nadeszła na utworzenie właściwości w naszej klasie, dodajemy następujący kod:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;span style="font-size: x-small;"&gt;//wartosc suwaka w postaci double&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;double&lt;/span&gt; _slider;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;double&lt;/span&gt; Slider&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _slider; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_slider = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;SliderValue = &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(_slider);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;//pozycja suwaka w postaci int&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; _sliderValue;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; SliderValue&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _sliderValue; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_sliderValue = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;PropertyChangedInvoker(&lt;span style="color: #a31515;"&gt;"SliderValue"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;//liczby kt&amp;oacute;re są wyświetlane w widoku&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; _liczby;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Liczby&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _liczby; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_liczby = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;PropertyChangedInvoker(&lt;span style="color: #a31515;"&gt;"Liczby"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;//odpowiada za trzymanie informacji czy przcisk Stop został nacisniety&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; _stopButtonClicked;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; StopButtonClicked&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _stopButtonClicked; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_stopButtonClicked = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;PropertyChangedInvoker(&lt;span style="color: #a31515;"&gt;"StopButtonClicked"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;//odowiada za trzymanie informacji czy przycisk Stop jest aktywny&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; _canStopButtonExecute;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CanStopButtonExecute&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; _canStopButtonExecute; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;_canStopButtonExecute = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;PropertyChangedInvoker(&lt;span style="color: #a31515;"&gt;"CanStopButtonExecute"&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Naszemu ViewModelowi dalej czegoś brakuje. W Widoku utworzyliśmy 2 przyciski. Teraz pokaże co zrobić żeby je trochę ożywić. Pierwszym zadaniem będzie utworzenie i klas kt&amp;oacute;re będą implementowały interface &lt;strong style="mso-bidi-font-weight: normal;"&gt;ICommand. &lt;/strong&gt;Klasy będą nazywać się odpowiednio &lt;strong style="mso-bidi-font-weight: normal;"&gt;StartCommand&lt;/strong&gt; i &lt;strong style="mso-bidi-font-weight: normal;"&gt;StopCommand&lt;/strong&gt;. Sama implementacja wygląda dokładnie tak samo jak wcześniej pokazałem. Wcześniej jednak do każdej z nich musimy dodać następującą przestrzeń nazw - &lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Input; Po tym nasze klasy, w tym wypadku StartCommnad, powinny wyglądać tak:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StartCommand&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;ICommand&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CanExecute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;strong&gt;&lt;span style="color: darkblue;"&gt;NotImplementedException&lt;/span&gt;&lt;/strong&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;EventHandler&lt;/span&gt; CanExecuteChanged;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;strong&gt;&lt;span style="color: darkblue;"&gt;NotImplementedException&lt;/span&gt;&lt;/strong&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Klasa posiada dwie metody i jeden event. Pierwsza metoda(&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;CanExecute) jest wywoływana gdy event (CanExecuteChanged) zostanie &amp;bdquo;wzniesiony&amp;rdquo;. Tak nasz widok sprawdza czy dana komenda może być wykonana.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Druga metoda (Execute) zawiera kod kt&amp;oacute;ry będzie wywołany w przypadku gdy komenda ma zostać wykonana ( w naszym przypadku przez naciśniecie przycisku).&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Musimy trochę rozbudować nasze klasy gdyż puste metody niewiele nam pomogą &lt;/span&gt;&lt;span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;. Pierwszym krokiem będzie utworzenie konstruktora i dodanie referencji do naszego ViewModelu dla naszych klas. Pozwoli nam to odwoływać się do jego właściwości.&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;private&lt;/span&gt;&lt;/strong&gt;&lt;strong style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;readonly&lt;/span&gt; &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Consolas; color: #2b91af;"&gt;MainViewModel&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; _vm;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; StartCommand(&lt;span style="color: #2b91af;"&gt;MainViewModel&lt;/span&gt; viewModel)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;_vm = viewModel;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Dodamy teraz trochę logiki do naszych metod. Rozbudujemy tez nasz event.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CanExecute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; _vm.CanStopButtonExecute == &lt;span style="color: blue;"&gt;false&lt;/span&gt; &amp;amp;&amp;amp; _vm.SliderValue != 10 &amp;amp;&amp;amp; _vm.SliderValue != 0;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;EventHandler&lt;/span&gt; CanExecuteChanged&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;add&lt;/span&gt; { &lt;span style="color: #2b91af;"&gt;CommandManager&lt;/span&gt;.RequerySuggested += &lt;span style="color: blue;"&gt;value&lt;/span&gt;; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;remove&lt;/span&gt; { &lt;span style="color: #2b91af;"&gt;CommandManager&lt;/span&gt;.RequerySuggested -= &lt;span style="color: blue;"&gt;value&lt;/span&gt;; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;_vm.CanStopButtonExecute = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;System.Threading.&lt;span style="color: #2b91af;"&gt;ThreadPool&lt;/span&gt;.QueueUserWorkItem(_vm.Losowanie);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;"&gt;Wytłumaczenia wymagają dwie rzeczy. Pierwsza to co to jest losowanie. Losowanie to będzie metoda kt&amp;oacute;ra będziemy jeszcze implementować w ViewModelu. Będzie ona odpowiedzialna za losowanie liczb. Drugą rzeczą dla niekt&amp;oacute;rych może być tajemnicze wywołanie metody -System.Threading.&lt;span style="color: #2b91af;"&gt;ThreadPool&lt;/span&gt;.QueueUserWorkItem. Pozwala nam ono wykonać dana metodę w osobnym wątku kt&amp;oacute;re będzie &amp;bdquo;obliczać&amp;rdquo; swoje rzeczy niezależnie od gł&amp;oacute;wnego wątku naszej aplikacji. Więcej informacji znajdziecie we wcześniejszych wpisach z tamtego roku. Dlaczego tak ? Nie chcemy aby nad naszą aplikacja pojawiła się klepsydra :P Nie odpowiadałaby ona na nasze żądania.Teraz do rzeczy bo zostało nam trochę roboty jeszcze. Druga nasza klasa powinna wyglądać podobnie:&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StopCommand&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;ICommand&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;readonly&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;MainViewModel&lt;/span&gt; _vm;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; StopCommand(&lt;span style="color: #2b91af;"&gt;MainViewModel&lt;/span&gt; viewModel)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_vm = viewModel;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CanExecute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; _vm.CanStopButtonExecute;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;EventHandler&lt;/span&gt; CanExecuteChanged&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;add&lt;/span&gt; { &lt;span style="color: #2b91af;"&gt;CommandManager&lt;/span&gt;.RequerySuggested += &lt;span style="color: blue;"&gt;value&lt;/span&gt;; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;remove&lt;/span&gt; { &lt;span style="color: #2b91af;"&gt;CommandManager&lt;/span&gt;.RequerySuggested -= &lt;span style="color: blue;"&gt;value&lt;/span&gt;; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;_vm.StopButtonClicked = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Musimy teraz &amp;bdquo;podpiąć&amp;rdquo; dopiero co stworzone klasy do ViewModelu. Przechodzimy do niego i&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;tworzymy kolejne dwie właściwości i w konstruktorze przypisujemy do nich nowe obiekty:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;ICommand&lt;/span&gt; Start { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;ICommand&lt;/span&gt; Stop { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; MainViewModel()&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;Start = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StartCommand&lt;/span&gt;(&lt;span style="color: blue;"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;Stop = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StopCommand&lt;/span&gt;(&lt;span style="color: blue;"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Dokładnie do tych dw&amp;oacute;ch właściwości bindowaliśmy nasze przyciski poprzez Command.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Kolejnym krokiem ( obiecuje ze już nie wiele tego zostało ) jest utworzenie klasy kt&amp;oacute;ra będzie nam losować liczby o danej długości jak i metoda o kt&amp;oacute;rej wcześniej wspomniałem. Zaczniemy od klasy.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Tworzymy i nazywamy ja Losomat. Oto logika kt&amp;oacute;ra jest w niej zawarta:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Losomat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; max = 999999999;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; min = 100000000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;readonly&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Random&lt;/span&gt; Random = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Random&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Losuj(&lt;span style="color: blue;"&gt;int&lt;/span&gt; ilosc)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;Random.Next(&lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(min / &lt;span style="color: #2b91af;"&gt;Math&lt;/span&gt;.Pow(10, 9 - ilosc)), &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(max / &lt;span style="color: #2b91af;"&gt;Math&lt;/span&gt;.Pow(10, 9 - ilosc))).ToString&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Mam nadzieje że wszytko w niej jest jasne.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Weźmiemy się teraz za metodę. Przechodzimy do ViewModelu i dodajemy.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Losowanie(&lt;span style="color: blue;"&gt;object&lt;/span&gt; param)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; SliderValue; i++)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;Liczby += &lt;span style="color: #a31515;"&gt;"0"&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = SliderValue; i &amp;gt; 0; i--)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;while&lt;/span&gt; (!StopButtonClicked)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt; temp = &lt;span style="color: #2b91af;"&gt;Losomat&lt;/span&gt;.Losuj(i);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;Liczby = Liczby.Substring(0, SliderValue - i) + temp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;System.Threading.&lt;span style="color: #2b91af;"&gt;Thread&lt;/span&gt;.Sleep(10);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;StopButtonClicked = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;CanStopButtonExecute = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Rzeczą kt&amp;oacute;ra może się przydać z tego kawałka kodu może być System.Threading.&lt;span style="color: #2b91af;"&gt;Thread&lt;/span&gt;.Sleep. Jest to metoda kt&amp;oacute;ra usypia dany watek na podana ilość czasu. Czas podajemy w milisekundach.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Ostatnia rzeczą jaka musimy wykonać jest złączenie Widoku z ViewModelem. Przechodzimy do Widoku, przed Gridem dodajemy przestrzeń nazw i definiujemy zas&amp;oacute;b dla naszego okna.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: red;"&gt;Haslo&lt;/span&gt;&lt;span style="color: blue;"&gt;="clr-namespace:Haslo"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Window.Resources&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt; &amp;nbsp; &amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Haslo&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;MainViewModel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Key&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="ViewModel"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Window.Resources&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Łączymy nasz nowy zas&amp;oacute;b z Gridem poprzez DataContext:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; color: blue; font-size: 6pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Grid&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Name&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; DataContext&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; ViewModel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt; }" &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-themecolor: text1;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;W ostateczność nasz początek kodu Widoku powinien wyglądać następująco :&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Window&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt; &amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: red;"&gt;Haslo&lt;/span&gt;&lt;span style="color: blue;"&gt;="clr-namespace:Haslo"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Class&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Haslo.MainWindow"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Name&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Window"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;Title&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="Haslo"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: red;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;Width&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="459"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; Height&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="204"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515; font-size: 6pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: x-small;"&gt; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Window.Resources&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Haslo&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;MainViewModel&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Key&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="ViewModel"/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Window.Resources&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;Grid&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; x&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt;Name&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="LayoutRoot"&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; DataContext&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt;="{&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="font-family: Consolas; color: red;"&gt; ViewModel&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue;"&gt; }" &amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Po tych wszystkich bojach możemy przystąpić do kompilacji naszego programu i cieszyć się jego możliwościami :D Kod z komentarzami będzie można pobrać&amp;nbsp;z linku niżej.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://eastgroup.pl/file.axd?file=2010%2f11%2fHaslo.rar"&gt;Haslo.rar (223,85 kb)&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=PGi1hoG5oWE:-7pIYz-j9YA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=PGi1hoG5oWE:-7pIYz-j9YA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=PGi1hoG5oWE:-7pIYz-j9YA:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=PGi1hoG5oWE:-7pIYz-j9YA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/PGi1hoG5oWE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/PGi1hoG5oWE/post.aspx</link>
      <comments>http://eastgroup.pl/post/Hasc582o-aplikacja-MVVM.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=20761aef-0726-4fc1-8781-8abfdb30f51a</guid>
      <pubDate>Thu, 18 Nov 2010 22:13:00 +0100</pubDate>
      <category>Techniczne</category>
      <dc:publisher>mateusz.jaskolowski</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=20761aef-0726-4fc1-8781-8abfdb30f51a</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=20761aef-0726-4fc1-8781-8abfdb30f51a</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Hasc582o-aplikacja-MVVM.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=20761aef-0726-4fc1-8781-8abfdb30f51a</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=20761aef-0726-4fc1-8781-8abfdb30f51a</feedburner:origLink></item>
    <item>
      <title>Express App Framework - wstęp</title>
      <description>&lt;html xmlns=""&gt;
&lt;p&gt;Ostatnio w ramach grupy .NET, miałem okazję na prezentacji, opowiedzieć Wam o XAF-ie. Po prezentacji wpadłem na pomysł żeby założyć bloga, i opisać ten Framework. Dlatego też, nie będę umieszczał materiał&amp;oacute;w kt&amp;oacute;re prezentowałem, a w zamian w ramach autopromocji zapraszam Was na &lt;a href="http://dawidtulski.net"&gt;http://dawidtulski.net&lt;/a&gt; :) Tam w cyklu wpis&amp;oacute;w, znajdziecie na pewno to co już pokazywałem oraz wiele innych (mam nadzieje ciekawych) rzeczy dotyczących XAF-a.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=xsYQiq80lkk:anxSPDN3Le0:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=xsYQiq80lkk:anxSPDN3Le0:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=xsYQiq80lkk:anxSPDN3Le0:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=xsYQiq80lkk:anxSPDN3Le0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/xsYQiq80lkk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/xsYQiq80lkk/post.aspx</link>
      <comments>http://eastgroup.pl/post/Express-App-Framework-wstep.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=ef1a6c03-40b3-4849-9dfd-75cd89f95de4</guid>
      <pubDate>Mon, 15 Nov 2010 14:51:00 +0100</pubDate>
      <category>Prezentacje</category>
      <dc:publisher>kelut</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=ef1a6c03-40b3-4849-9dfd-75cd89f95de4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=ef1a6c03-40b3-4849-9dfd-75cd89f95de4</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Express-App-Framework-wstep.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=ef1a6c03-40b3-4849-9dfd-75cd89f95de4</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=ef1a6c03-40b3-4849-9dfd-75cd89f95de4</feedburner:origLink></item>
    <item>
      <title>Ustalenia po spotkaniach organizacyjnych</title>
      <description>&lt;p&gt;Hej :)&lt;/p&gt;
&lt;p&gt;W ubiegłym tygodniu odbyły się dwa, organizacyjne, spotkania grupy. Postanowiliśmy, że tak, jak w latach poprzednich, będą dwa typy spotkań: Warsztaty oraz Prezentacje. Na warsztatach, w tym semestrze będziemy uczyli się C# oraz pisali małe projekty. Spotkania zawsze będą odbywały się we wtorki (prezentacje) o godzinie 17.30 oraz w czwartki (warsztaty) o godzinie 19.&lt;/p&gt;
&lt;p&gt;Zapraszam r&amp;oacute;wnież na jutrzejsze spotkanie (wtorek 26.10), na kt&amp;oacute;rym Mateusz Jask&amp;oacute;łowski opowie o tworzeniu aplikacji w WPF z użyciem wzorca MVVM. Opowie r&amp;oacute;wnież o narzędziu do tworzenia wyglądu naszej aplikacji WPF. Zapraszamy!&lt;/p&gt;
&lt;p&gt;Nie zapomnijcie zarejestrować się na:&lt;a title="Codeguru" href="https://codeguru.pl/group-82/LectureDetails/1,4686.aspx"&gt; https://codeguru.pl/group-82/LectureDetails/1,4686.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=B5u9irO9tI0:uEHGSmPPRLo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=B5u9irO9tI0:uEHGSmPPRLo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=B5u9irO9tI0:uEHGSmPPRLo:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=B5u9irO9tI0:uEHGSmPPRLo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/B5u9irO9tI0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/B5u9irO9tI0/post.aspx</link>
      <comments>http://eastgroup.pl/post/Ustalenia-po-spotkaniach-organizacyjnych.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=db68e578-58fa-4c9e-a13b-0e26ecaab2b4</guid>
      <pubDate>Mon, 25 Oct 2010 10:11:00 +0100</pubDate>
      <category>News</category>
      <category>Prezentacje</category>
      <category>Techniczne</category>
      <dc:publisher>Dedloo</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=db68e578-58fa-4c9e-a13b-0e26ecaab2b4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=db68e578-58fa-4c9e-a13b-0e26ecaab2b4</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Ustalenia-po-spotkaniach-organizacyjnych.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=db68e578-58fa-4c9e-a13b-0e26ecaab2b4</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=db68e578-58fa-4c9e-a13b-0e26ecaab2b4</feedburner:origLink></item>
    <item>
      <title>Pierwsze, powakacyjne spotkanie</title>
      <description>&lt;div class="full"&gt;
&lt;div class="text"&gt;&lt;span id="id_cctext"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class="text"&gt;&lt;span id="id_cctext"&gt;&amp;nbsp; Witam Was w nowym roku akademickim!&lt;/span&gt;&lt;/div&gt;
&lt;div class="text"&gt;&lt;span id="id_cctext"&gt;Czas zacząć spotkania naszej grupy :) Już niebawem, bo we  &lt;strong&gt;wtorek 19 października o godzinie 18.00 &lt;/strong&gt;w&lt;strong&gt; sali 49 &lt;/strong&gt;na Wydziale Matematyki i  Informatyki odbędzie się pierwsze powakacyjne spotkanie. Będzie to spotkanie  organizacyjne, na kt&amp;oacute;rym chcemy ustalić jak będą wyglądały spotkania w tym roku, co  chcielibyście robić na warsztatach, prezentacje na jaki temat chcielibyście  usłyszeć itp.Będzie też trochę o nowych zasadach premiowania aktywnych uczestnik&amp;oacute;w i  wiele więcej.&lt;br /&gt;Gorąco zapraszamy.&lt;/span&gt;&lt;/div&gt;
&lt;div class="text"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="text"&gt;&lt;span&gt;P.S Przypominam o rejestracji na spotkanie: &lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt; &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:TrackMoves /&gt; &lt;w:TrackFormatting /&gt; &lt;w:HyphenationZone&gt;21&lt;/w:HyphenationZone&gt; &lt;w:PunctuationKerning /&gt; &lt;w:ValidateAgainstSchemas /&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt; &lt;w:DoNotPromoteQF /&gt; &lt;w:LidThemeOther&gt;PL&lt;/w:LidThemeOther&gt; &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt; &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt; &lt;w:Compatibility&gt; &lt;w:BreakWrappedTables /&gt; &lt;w:SnapToGridInCell /&gt; &lt;w:WrapTextWithPunct /&gt; &lt;w:UseAsianBreakRules /&gt; &lt;w:DontGrowAutofit /&gt; &lt;w:SplitPgBreakAndParaMark /&gt; &lt;w:EnableOpenTypeKerning /&gt; &lt;w:DontFlipMirrorIndents /&gt; &lt;w:OverrideTableStyleHps /&gt; &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;m:mathPr&gt; &lt;m:mathFont m:val="Cambria Math" /&gt; &lt;m:brkBin m:val="before" /&gt; &lt;m:brkBinSub m:val="&amp;#45;-" /&gt; &lt;m:smallFrac m:val="off" /&gt; &lt;m:dispDef /&gt; &lt;m:lMargin m:val="0" /&gt; &lt;m:rMargin m:val="0" /&gt; &lt;m:defJc m:val="centerGroup" /&gt; &lt;m:wrapIndent m:val="1440" /&gt; &lt;m:intLim m:val="subSup" /&gt; &lt;m:naryLim m:val="undOvr" /&gt; &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"&gt; &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt; &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt; &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt; &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt; &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt; &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt; &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt; &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt; &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt; &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt; &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt; &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt; &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt; &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt; &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt; &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt; &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt; &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:Standardowy;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="https://codeguru.pl/group-82/LectureDetails/1,4622.aspx"&gt;https://codeguru.pl/group-82/LectureDetails/1,4622.aspx&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=qvljn7FYCGM:wv_H_Qe7Q5Y:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=qvljn7FYCGM:wv_H_Qe7Q5Y:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=qvljn7FYCGM:wv_H_Qe7Q5Y:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=qvljn7FYCGM:wv_H_Qe7Q5Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/qvljn7FYCGM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/qvljn7FYCGM/post.aspx</link>
      <comments>http://eastgroup.pl/post/Pierwsze-powakacyjne-spotkanie.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=d37a79b7-4c20-49a2-9509-355b5de4252f</guid>
      <pubDate>Wed, 13 Oct 2010 08:54:00 +0100</pubDate>
      <dc:publisher>Dedloo</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=d37a79b7-4c20-49a2-9509-355b5de4252f</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=d37a79b7-4c20-49a2-9509-355b5de4252f</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Pierwsze-powakacyjne-spotkanie.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=d37a79b7-4c20-49a2-9509-355b5de4252f</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=d37a79b7-4c20-49a2-9509-355b5de4252f</feedburner:origLink></item>
    <item>
      <title>Konkurs – vouchery na egzamin - pytania</title>
      <description>&lt;p&gt;Tak jak &lt;a title="Konkurs - voucher na egzaminy" href="http://eastgroup.pl/post/Konkurs-e28093-do-wygrania-vouchery-na-egzamin.aspx"&gt;wczoraj pisaliśmy&lt;/a&gt;, dzisiaj publikujemy dwadzieścia pytań związanych z egzaminami, do kt&amp;oacute;rych w ciągu ostatnich trzech miesięcy publikowaliśmy artykuły przygotowujące. Pytania są zamknięte i pierwsza osoba, kt&amp;oacute;ra w komentarzu (&lt;strong&gt;przypominamy o poprawnym podaniu adresu email, na kt&amp;oacute;ry wyślemy vouchery&lt;/strong&gt;) poda poprawną odpowiedz na wszystkie pytania otrzyma nagrodę voucher na egzamin oraz voucher na kurs e-learningowy ASP.NET 3.5. Poniżej lista pytań:&lt;/p&gt;
&lt;h4&gt;70-562 &amp;ndash; ASP:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Masz DataSet zawierającego Customer DataTable oraz Order DataTable. Chcesz łatwo przechodzić z Order DataRow do Customer, kt&amp;oacute;ry jest autorem zam&amp;oacute;wienia. Kt&amp;oacute;ry obiekt umożliwi Ci łatwe przechodzenie z obiekt&amp;oacute;w Order do obiekt&amp;oacute;w Customer?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. DataColumn&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. DataTable&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. DataRow&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. DataRelation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Kt&amp;oacute;ra z poniższych metod klasy HttpServerUtility może zostać użyta to przejścia na inną stronę aplikacji bez przesyłania o tym informacji do klienta:      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. Redirect&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. MapPath&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Transfer&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. UrlDecode&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Potrzebujesz przechowywać dane, kt&amp;oacute;re są dostępne dla każdego użytkownika, kt&amp;oacute;ry odwiedza Twoją stronę. Jakiej kolekcji powinieneś użyć w tym celu?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. Session&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. Application&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Cookies&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. ViewState&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Co musisz dodać do connection stringa, aby umożliwić dostęp do danych asynchroniczny?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. BeginExecute=true&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. MultiThreaded=true&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. MultipleActiveResultSets=true&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. Asynchronous Processing=true&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Potrzebujesz generować dynamicznie dokumenty Worda, kiedy po aplikacji przychodzi żądanie pobrania pliku, kt&amp;oacute;rego rozszerzeniem jest .docx. Jak możesz to zrobić?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. Zaimplementować interfejs IPartitionResolver&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. Zaimplementować interfejs IHttpModule&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Zaimplementować interfejs IHttpHandler&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. Zaimplementować interfejs IHttpHandlerFactory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Kt&amp;oacute;rej klasy użyjesz podczas konwersji między typami danych .NET Framework a typami XML?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. XmlType&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. XmlCast&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. XmlConvert&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. XmlSettings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Tworzysz aplikację webową w ASP.NET w dziesiątkami stron wchodzących w jej skład. Chcesz zapisać preferencje użytkownika, tak aby można było się do tych informacji dostać z każdej strony. Dodatkowo chcesz, aby te ustawienia były zapamiętywany między kolejnymi wizytami użytkownika, nawet jak zamknie przeglądarkę. Kt&amp;oacute;ry mechanizm zapamiętywania stanu po stronie klienta użyjesz?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. View state&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. Control state&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Hidden fields&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. Cookies&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;E. Query strings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Jaki tym uwierzytelniania na poziomie aplikacji musicie skonfigurować, aby m&amp;oacute;c skorzystać z domyślnego membership providera &amp;ndash; AspNetSqlMembershipProvider?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. Windows&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. Forms&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Passport&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. None&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Potrzebujesz dynamicznie zmienić master page dla strony. W kt&amp;oacute;rym zdarzeniu strony to zrobisz?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. Page_Load&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. Page_Render&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. Page_PreRender&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. Page_PreInit&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Chcesz napisać serwis WCF, kt&amp;oacute;ry będzie hostowany przez IIS. Kt&amp;oacute;ry typ projektu powinieneś użyć?      &lt;br /&gt;
&lt;p style="padding-left: 30px"&gt;A. WCF Service library&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;B. WCF Service application&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;C. ASP.NET Web Service application&lt;/p&gt;
&lt;p style="padding-left: 30px"&gt;D. Windows Service&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;70-503 &amp;ndash; WCF:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Mamy klasę:&amp;nbsp; &lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[ServiceBehavior()]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ServiceImplementation : IServiceInterface&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; hitCounter;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Increment()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        hitCounter++;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Jak należy udekorować klasę &lt;em&gt;ServiceImplementation&lt;/em&gt; aby problemy wsp&amp;oacute;łbieżności zostały wyeliminowane bez dodawania kodu w klasie? (Wybierz wszystkie poprawne odpowiedzi)&lt;/p&gt;
&lt;p&gt;A. ConcurrencyMode=Multiple i InstanceContextMode=Single&lt;/p&gt;
&lt;p&gt;B. ConcurrencyMode=Single i InstanceContextMode=PerSession&lt;/p&gt;
&lt;p&gt;C. ConcurrencyMode=Multiple i InstanceContextMode=PerSession&lt;/p&gt;
&lt;p&gt;D. ConcurrencyMode=Single i InstanceContextMode=Single&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Kt&amp;oacute;ry z poniższych punkt&amp;oacute;w rozszerzenia (po stronie serwisu) musi być też zaimplementowany po stronie klienta?      &lt;br /&gt;
&lt;p&gt;A. Message Inspection&lt;/p&gt;
&lt;p&gt;B. Message Formatting&lt;/p&gt;
&lt;p&gt;C. Parameter Inspection&lt;/p&gt;
&lt;p&gt;D. Operation Invoker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;W obiekcie wiadomości właściwość MessageState jest ustawiona na Written. Kt&amp;oacute;re z poniższych zdarzeń zaszło?      &lt;br /&gt;
&lt;p&gt;A. Metoda GetReaderAtBodyContents została wywołana.&lt;/p&gt;
&lt;p&gt;B. Metoda WriteBodyContents została wywołana.&lt;/p&gt;
&lt;p&gt;C. Metoda CreateBufferedCopy została wywołana.&lt;/p&gt;
&lt;p&gt;D. Metoda CreateMessage została wywołana.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Właśnie definiujesz nowy kontrakt serwisu. Kt&amp;oacute;re z poniższych reprezentują atrybuty z przestrzeni System.ServiceModel, kt&amp;oacute;re na pewno będą potrzebne?      &lt;br /&gt;
&lt;p&gt;A. ServiceContractAttribute i FaultContractAttribute&lt;/p&gt;
&lt;p&gt;B. OperationContractAttribute i FaultContractAttribute&lt;/p&gt;
&lt;p&gt;C. ServiceContractAttribute i OperationContractAttribute&lt;/p&gt;
&lt;p&gt;D. OperationContractAttribute i MessageParameterAttribute&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Będziesz obsługiwać serwis napisany w javie. Kt&amp;oacute;re z poniższych są poprawnymi metodami utworzenia proxy WCF do obsługi serwisu? (Wybierz wszystkie poprawne)      &lt;br /&gt;
&lt;p&gt;A. Użyj klasy ChannelFactory class do utworzenia obiektu proxy dynamicznie.&lt;/p&gt;
&lt;p&gt;B. Użyj polecenia svcutil do utworzenia obieku proxy na podstawie definicji WSDL&lt;/p&gt;
&lt;p&gt;C. Ręcznie utw&amp;oacute;rz klasę proxy dziedziczącą po ClientBase.&lt;/p&gt;
&lt;p&gt;D. Dodaj referencję serwisu w Visual Studio (dodając referencję WSDL serwisu do projektu).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Potrzebujesz uruchomić serwis na serwerze IIS. Kt&amp;oacute;ra wersja IIS obsługuje protokoły nie-HTTP?      &lt;br /&gt;
&lt;p&gt;A. IIS 5.1&lt;/p&gt;
&lt;p&gt;B. IIS 6.0&lt;/p&gt;
&lt;p&gt;C. IIS 7.0&lt;/p&gt;
&lt;p&gt;D. Żadna z wersji IIS&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Utworzyłeś aplikację kliencką WCF, kt&amp;oacute;ra musi obsługiwać wywołanie zwrotne z serwisu. Kt&amp;oacute;ry z binding&amp;oacute;w użyjesz aby spełnić to wymaganie?      &lt;br /&gt;
&lt;p&gt;A. basicHttpBinding&lt;/p&gt;
&lt;p&gt;B. wsHttpBinding&lt;/p&gt;
&lt;p&gt;C. wsHttpContextBinding&lt;/p&gt;
&lt;p&gt;D. wsDualHttpBinding&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Utworzyłeś aplikację kliencką WCF, kt&amp;oacute;ra musi obsługiwać wywołanie zwrotne z serwisu. Kt&amp;oacute;ry z poniższych binding&amp;oacute;w NIE wspiera tego wymagania?      &lt;br /&gt;
&lt;p&gt;A. netTcpBinding&lt;/p&gt;
&lt;p&gt;B. netNamedPipeBinding&lt;/p&gt;
&lt;p&gt;C. netMsmqBinding&lt;/p&gt;
&lt;p&gt;D. netTcpContextBinding&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Jaki będzie rezultat poniższego kodu?      &lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (TransactionScope ts1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TransactionScope(&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    TransactionScopeOption.Required, &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Timespan(0, 0, 30)))&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (TransactionScope ts2 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TransactionScope(&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        TransactionScopeOption.Required, &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Timespan(0, 0, 40)))&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        &lt;span style="color: #008000"&gt;// Update database&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        &lt;span style="color: #008000"&gt;// Sleep for 35 seconds&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        ts2.Complete();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    ts1.Complete();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A. Obie transakcje zostaną zatwierdzone.&lt;/p&gt;
&lt;p&gt;B. Obie transakcje zostaną wycofane.&lt;/p&gt;
&lt;p&gt;C. Transakcja ts2 zostanie zatwierdzona a ts1 wycofana.&lt;/p&gt;
&lt;p&gt;D. Transakcja ts1 zostanie zatwierdzona, a ts2 wycofana.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Masz aplikację Windows Forms. W pojedynczej transakcji Twoja aplikacja musi zaktualizować dwie bazy Microsoft SQL Server. Kt&amp;oacute;ry koordynator transakcji zarządza tymi transakcjami?      &lt;br /&gt;
&lt;p&gt;A. Lightweight Transaction Manager&lt;/p&gt;
&lt;p&gt;B. Microsoft Distributed Transaction Controller&lt;/p&gt;
&lt;p&gt;C. Kernel Transaction Manager&lt;/p&gt;
&lt;p&gt;D. Web Services Transaction Manager&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Powodzenia!&lt;/strong&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=HY9fxjnv8F4:G4LAyyF1SvY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=HY9fxjnv8F4:G4LAyyF1SvY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=HY9fxjnv8F4:G4LAyyF1SvY:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=HY9fxjnv8F4:G4LAyyF1SvY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/HY9fxjnv8F4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/HY9fxjnv8F4/post.aspx</link>
      <comments>http://eastgroup.pl/post/Konkurs-e28093-vouchery-na-egzamin-pytania.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=79a6a42d-2463-47be-82be-3ddb3756cab3</guid>
      <pubDate>Fri, 11 Jun 2010 12:00:00 +0100</pubDate>
      <category>70-503</category>
      <category>70-536</category>
      <category>70-562</category>
      <dc:publisher>cieszak</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=79a6a42d-2463-47be-82be-3ddb3756cab3</pingback:target>
      <slash:comments>15</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=79a6a42d-2463-47be-82be-3ddb3756cab3</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Konkurs-e28093-vouchery-na-egzamin-pytania.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=79a6a42d-2463-47be-82be-3ddb3756cab3</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=79a6a42d-2463-47be-82be-3ddb3756cab3</feedburner:origLink></item>
    <item>
      <title>Konkurs – vouchery na egzamin</title>
      <description>&lt;p&gt;Tak jak zapowiadaliśmy wcześniej, mamy dla Was niespodziankę!&lt;/p&gt;
&lt;p&gt;Mamy do rozdania kilka nagr&amp;oacute;d:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 vouchery na dowolny egzamin (ważne do 30 lipca 2010) &lt;/li&gt;
&lt;li&gt;2 vouchery na kurs e-learningowy 6364: Visual Studio 2008 ASP.Net 3.5 (ważne do 30 czerwca 2010) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Chcieliśmy podziękować &lt;a title="Olsztyńska Grupa IT" href="http://ms-groups.pl/ogit/default.aspx"&gt;Olsztyńskiej Grupie IT&lt;/a&gt; za vouchery. Dzięki!!!&lt;/p&gt;
&lt;h3&gt;Konkurs na najlepszą &amp;ldquo;zajawkę&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;Waszym zadaniem jest napisanie notki z linkami (&lt;a title="Przygotowania do egzaminu 70-536" href="http://eastgroup.pl/post/Podsumowanie-wpisow-przygotowujacych-do-egzaminu-70-536.aspx"&gt;70-536&lt;/a&gt;, &lt;a title="Przygotowania do egzaminu 70-562" href="http://eastgroup.pl/post/70-562-ASPNET.aspx"&gt;70-562&lt;/a&gt;, &lt;a title="Przygotowania do egzaminu 70-503" href="http://eastgroup.pl/post/70-503-Windows-Communication-Foundation.aspx"&gt;70-503&lt;/a&gt;) do naszych kurs&amp;oacute;w w jakimś blogu/serwisie. Najlepsza &amp;ldquo;zajawka&amp;rdquo; będzie nagrodzona: voucherem na egzamin, a kolejna voucherem na kurs e-learningowy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Termin zgłaszania &amp;ldquo;zajawek&amp;rdquo; (termin wpisania linku do nich w komentarzach) godz. 12.00, poniedziałek 14 czerwca 2010 r!&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Konkurs na najszybszego czytelnika&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Jutro (piątek 11 czerwca 2010) o godzinie 12.00&lt;/strong&gt; pojawią się 20 pytania z zakresu przedstawianych przez nas kurs&amp;oacute;w (dziesięć z WCF, dziesięć z ASP.NET).&lt;/p&gt;
&lt;p&gt;Najszybsza osoba, kt&amp;oacute;ra wpisze w komentarzu poprawne odpowiedzi na wszystkie pytania otrzyma voucher na egzamin i voucher na kurs e-learningowy.&lt;/p&gt;
&lt;h5&gt;Skr&amp;oacute;cony regulamin:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;nagrody nie podlegają wymianie na ich wartość pieniężną &lt;/li&gt;
&lt;li&gt;wszelkie konflikty rozwiązuje oraz &amp;ldquo;zajawki&amp;rdquo; ocenia komisja w składzie: Daniel Plawgo, Dawid Cieszyński, Kamil Lemański, Daniel Jarzynka, Dawid Tulski &lt;/li&gt;
&lt;li&gt;członkowie komisji nie mogą brać udziału w konkursach &lt;/li&gt;
&lt;li&gt;do komunikacji z zwycięzcami będzie użyty adres email pozostawiony w komentarzu &lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=29uGyNuExCc:-UsIwJ2UEBA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=29uGyNuExCc:-UsIwJ2UEBA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=29uGyNuExCc:-UsIwJ2UEBA:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=29uGyNuExCc:-UsIwJ2UEBA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/29uGyNuExCc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/29uGyNuExCc/post.aspx</link>
      <comments>http://eastgroup.pl/post/Konkurs-e28093-do-wygrania-vouchery-na-egzamin.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=8f0e3ff7-0a12-4683-8cc9-dc3c5f401699</guid>
      <pubDate>Thu, 10 Jun 2010 10:30:00 +0100</pubDate>
      <category>70-503</category>
      <category>70-536</category>
      <category>70-562</category>
      <category>News</category>
      <dc:publisher>cieszak</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=8f0e3ff7-0a12-4683-8cc9-dc3c5f401699</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=8f0e3ff7-0a12-4683-8cc9-dc3c5f401699</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/Konkurs-e28093-do-wygrania-vouchery-na-egzamin.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=8f0e3ff7-0a12-4683-8cc9-dc3c5f401699</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=8f0e3ff7-0a12-4683-8cc9-dc3c5f401699</feedburner:origLink></item>
    <item>
      <title>70-503: Synchronization</title>
      <description>&lt;p&gt;Ten artykuł pochodzi z serii przygotowań do egzaminu &lt;a href="http://eastgroup.pl/post/70-503-Windows-Communication-Foundation.aspx"&gt;70-503: Windows Communication Foundation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ci z Was, kt&amp;oacute;rzy obsługiwali już wątki w .NET wiedzą, że nie jest to specjalnie skomplikowane. Najczęściej problemy występują przy obsłudze kontrolek &lt;em&gt;Windows Forms&lt;/em&gt;, ponieważ ich właściwości mogą być zmieniane tylko w wątku, kt&amp;oacute;ry je stworzył. Innym problemem jest wykorzystywanie lokalnej pamięci wątk&amp;oacute;w do przechowywania informacji o kontekście, gdy proces nieoczekiwanie zmienia wątki, te dane mogą zniknąć. Z tej lekcji dowiemy się jak powyższe problemy są obsługiwane w &lt;em&gt;WCF&lt;/em&gt;ie.&lt;/p&gt;
&lt;h3&gt;Kontekst synchronizacji&lt;/h3&gt;
&lt;p&gt;W .NET 2.0 została wprowadzona rzadko używana funkcjonalność zwana kontekstem synchronizacji (klasa &lt;em&gt;SynchronizationContext&lt;/em&gt;). Umożliwia ona sprawdzenie czy aktualnie wykonywany kod znajduje się w odpowiednim wątku. Aktualny kontekst możemy otrzymać odwołując się do statycznego pola &lt;em&gt;SynchronizationContext.Current&lt;/em&gt;. Gdy jakaś metoda ma być wywołana w wątku, kt&amp;oacute;ry nie jest bieżącym wątkiem, wywołujący wątek tworzy delegat typu &lt;em&gt;SendOrPostCallback&lt;/em&gt; odwołujący się do żądanej metody a następnie jest przekazywany do metody &lt;em&gt;Post&lt;/em&gt; (wywołanie asynchroniczne) lub &lt;em&gt;Send&lt;/em&gt; (wywołanie synchroniczne) obiektu &lt;em&gt;SynchronizationContext&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;WCF i synchronizacja&lt;/h3&gt;
&lt;p&gt;A co ma kontekst synchronizacji do WCF&amp;rsquo;a? Nie wiem czy wiecie, że jeśli nie jest ustawione inaczej, każde wywołanie metod obiektu serwisu jest wykonywane przez wątki wejścia/wyjścia, z kt&amp;oacute;rych &lt;strong&gt;żaden&lt;/strong&gt; nie należy do naszej aplikacji. Gdybyśmy chcieli teraz zaktualizować coś w interfejsie użytkownika to napotkamy problem.&lt;/p&gt;
&lt;p&gt;Z pomocą przychodzi nam właściwość &lt;em&gt;UseSynchronizationContext&lt;/em&gt; klasy &lt;em&gt;ServiceBehavior&lt;/em&gt;:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[ServiceBehavior(UseSynchronizationContext=&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; UpdateService : IUpdateService&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ustawienie tego atrybutu na &lt;em&gt;true&lt;/em&gt; spowoduje, że &lt;em&gt;WCF&lt;/em&gt; będzie sprawdzał wątek uruchamiający hosta i jeśli wątek ten posiada kontekst synchronizacji i metoda serwisu jest wywołana z innego wątku, to będzie ona przekazywana do właściwego wątku i przez niego uruchomiona.&lt;/p&gt;
&lt;p&gt;W przypadku hostowania serwisu w aplikacji &lt;em&gt;Windows Forms&lt;/em&gt;/&lt;em&gt;WPF&lt;/em&gt;, jeśli najpierw zostanie utworzony host przed oknem, nie zostanie utworzony żaden kontekst synchronizacji i każda aktualizacja kontrolek spowoduje błąd. Najpierw należy utworzyć okno a potem dopiero hosta serwisu.&lt;/p&gt;
&lt;h3&gt;Własny kontekst synchronizacji&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;WCF&lt;/em&gt; udostępnia tylko jedną klasę umożliwiającą obsługę kontekstu synchronizacji, dzięki kt&amp;oacute;rej możemy np. aktualizować kontrolki w oknie aplikacji hostującej serwis. Możemy także utworzyć własne konteksty synchronizacji. Klasa kontekstu synchronizacjo odpowiada za wykonywanie metod serwisu przez konkretne wątki. Możemy wykorzystać ją np. do priorytetowania obsługi. Nasz kontekst synchronizacji może przekazywać wykonanie ważniejszych metod do wątk&amp;oacute;w o wyższym priorytecie a pozostałych do innych wątk&amp;oacute;w. Możemy właściwie zrobić o wiele więcej bazując na tym co udostępniają nam wątki.&lt;/p&gt;
&lt;p&gt;Na początek potrzebna jest klasa bazująca na &lt;em&gt;SynchronizationContext&lt;/em&gt;.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ThreadPoolSynchronizer : SynchronizationContext, IDisposable&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;     Queue&amp;lt;WorkItem&amp;gt; workItemQueue;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;     WorkerThread[] workerThreads;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     Semaphore itemAdded;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; ThreadPoolSynchronizer(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; poolSize)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (poolSize &amp;lt;= 0)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; InvalidOperationException(&lt;span style="color: #006080"&gt;"Pool size cannot be zero"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;         workItemQueue = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Queue&amp;lt;WorkItem&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;         workerThreads = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WorkerThread[poolSize];&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index = 0; index &amp;lt; poolSize; index++)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;             workerThreads[index] = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WorkerThread(index + 1, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Close()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum20" style="color: #606060"&gt;  20:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum21" style="color: #606060"&gt;  21:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (WorkerThread thread &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; workerThreads)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum22" style="color: #606060"&gt;  22:&lt;/span&gt;             thread.Abort();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum23" style="color: #606060"&gt;  23:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum24" style="color: #606060"&gt;  24:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum25" style="color: #606060"&gt;  25:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Abort()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum26" style="color: #606060"&gt;  26:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum27" style="color: #606060"&gt;  27:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (WorkerThread thread &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; workerThreads)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum28" style="color: #606060"&gt;  28:&lt;/span&gt;             thread.Abort();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum29" style="color: #606060"&gt;  29:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum30" style="color: #606060"&gt;  30:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum31" style="color: #606060"&gt;  31:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Dispose()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum32" style="color: #606060"&gt;  32:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum33" style="color: #606060"&gt;  33:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Close();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum34" style="color: #606060"&gt;  34:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum35" style="color: #606060"&gt;  35:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum36" style="color: #606060"&gt;  36:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Post(SendOrPostCallback method, Object state)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum37" style="color: #606060"&gt;  37:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum38" style="color: #606060"&gt;  38:&lt;/span&gt;         WorkItem workItem = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WorkItem(method, state);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum39" style="color: #606060"&gt;  39:&lt;/span&gt;         QueueWorkItem(workItem);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum40" style="color: #606060"&gt;  40:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum41" style="color: #606060"&gt;  41:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum42" style="color: #606060"&gt;  42:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Send(SendOrPostCallback method, Object state)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum43" style="color: #606060"&gt;  43:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum44" style="color: #606060"&gt;  44:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SynchronizationContext.Current == &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum45" style="color: #606060"&gt;  45:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum46" style="color: #606060"&gt;  46:&lt;/span&gt;             method(state);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum47" style="color: #606060"&gt;  47:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum48" style="color: #606060"&gt;  48:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum49" style="color: #606060"&gt;  49:&lt;/span&gt;         WorkItem workItem = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WorkItem(method, state);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum50" style="color: #606060"&gt;  50:&lt;/span&gt;         QueueWorkItem(workItem);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum51" style="color: #606060"&gt;  51:&lt;/span&gt;         workItem.AsyncWaitHandle.WaitOne();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum52" style="color: #606060"&gt;  52:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum53" style="color: #606060"&gt;  53:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum54" style="color: #606060"&gt;  54:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; Semaphore ItemAdded&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum55" style="color: #606060"&gt;  55:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum56" style="color: #606060"&gt;  56:&lt;/span&gt;         get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum57" style="color: #606060"&gt;  57:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum58" style="color: #606060"&gt;  58:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (itemAdded == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum59" style="color: #606060"&gt;  59:&lt;/span&gt;                 itemAdded = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Semaphore(0, Int32.MaxValue);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum60" style="color: #606060"&gt;  60:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum61" style="color: #606060"&gt;  61:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; itemAdded;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum62" style="color: #606060"&gt;  62:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum63" style="color: #606060"&gt;  63:&lt;/span&gt;         set&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum64" style="color: #606060"&gt;  64:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum65" style="color: #606060"&gt;  65:&lt;/span&gt;             itemAdded = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum66" style="color: #606060"&gt;  66:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum67" style="color: #606060"&gt;  67:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum68" style="color: #606060"&gt;  68:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum69" style="color: #606060"&gt;  69:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;virtual&lt;/span&gt; &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; QueueWorkItem(WorkItem workItem)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum70" style="color: #606060"&gt;  70:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum71" style="color: #606060"&gt;  71:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;lock&lt;/span&gt; (workItemQueue)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum72" style="color: #606060"&gt;  72:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum73" style="color: #606060"&gt;  73:&lt;/span&gt;             workItemQueue.Enqueue(workItem);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum74" style="color: #606060"&gt;  74:&lt;/span&gt;             ItemAdded.Release();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum75" style="color: #606060"&gt;  75:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum76" style="color: #606060"&gt;  76:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum77" style="color: #606060"&gt;  77:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum78" style="color: #606060"&gt;  78:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;virtual&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; QueueEmpty&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum79" style="color: #606060"&gt;  79:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum80" style="color: #606060"&gt;  80:&lt;/span&gt;         get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum81" style="color: #606060"&gt;  81:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum82" style="color: #606060"&gt;  82:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;lock&lt;/span&gt; (workItemQueue)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum83" style="color: #606060"&gt;  83:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum84" style="color: #606060"&gt;  84:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (workItemQueue.Count &amp;gt; 0)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum85" style="color: #606060"&gt;  85:&lt;/span&gt;                 {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum86" style="color: #606060"&gt;  86:&lt;/span&gt;                     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum87" style="color: #606060"&gt;  87:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum88" style="color: #606060"&gt;  88:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum89" style="color: #606060"&gt;  89:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum90" style="color: #606060"&gt;  90:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum91" style="color: #606060"&gt;  91:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum92" style="color: #606060"&gt;  92:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;virtual&lt;/span&gt; WorkItem GetNext()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum93" style="color: #606060"&gt;  93:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum94" style="color: #606060"&gt;  94:&lt;/span&gt;         ItemAdded.WaitOne(1000);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum95" style="color: #606060"&gt;  95:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;lock&lt;/span&gt; (workItemQueue)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum96" style="color: #606060"&gt;  96:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum97" style="color: #606060"&gt;  97:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (workItemQueue.Count == 0)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum98" style="color: #606060"&gt;  98:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum99" style="color: #606060"&gt;  99:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum100" style="color: #606060"&gt; 100:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum101" style="color: #606060"&gt; 101:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; workItemQueue.Dequeue();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum102" style="color: #606060"&gt; 102:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum103" style="color: #606060"&gt; 103:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum104" style="color: #606060"&gt; 104:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum105" style="color: #606060"&gt; 105:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Mamy tutaj prostą implementację własnej obsługi wątk&amp;oacute;w. Dodatkowo utworzone są klasy &lt;em&gt;WorkItem&lt;/em&gt; i &lt;em&gt;WorkerThread&lt;/em&gt; (nazwy m&amp;oacute;wią same za siebie, poniżej pokażę ich kod).&lt;/p&gt;
&lt;p&gt;Za funkcjonalność synchronizacji odpowiada pięć metod podzielonych na dwie grupy. Trzy metody operacyjne (&lt;em&gt;Close&lt;/em&gt;, &lt;em&gt;Abort&lt;/em&gt;, &lt;em&gt;Dispose&lt;/em&gt; &amp;ndash; linie 19-34) odpowiadają za zatrzymywanie wątku obsługującego żądanie. Dwie metody funkcyjne (&lt;em&gt;Post&lt;/em&gt; i &lt;em&gt;Send&lt;/em&gt; &amp;ndash; linie 36-52) używane są przez WCF do uruchomienia metody. W metodzie &lt;em&gt;Send&lt;/em&gt; (linie 44-48) sprawdzamy czy aktualny kontekst nie jest naszym kontekstem aby nie spowodować zakleszczenia.&lt;/p&gt;
&lt;p&gt;Dla pełności przedstawiam jeszcze klasy &lt;em&gt;WorkItem&lt;/em&gt; i &lt;em&gt;WorkerThread&lt;/em&gt;:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt;&amp;nbsp;&amp;nbsp; [Serializable]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; WorkItem&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;   {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; state;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;       SendOrPostCallback method;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;       ManualResetEvent asyncWaitHandle;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; WaitHandle AsyncWaitHandle&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;           get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;           {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;               &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; asyncWaitHandle;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;           }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;       }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; WorkItem(SendOrPostCallback method, &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; state)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.method = method;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.state = state;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum20" style="color: #606060"&gt;  20:&lt;/span&gt;           asyncWaitHandle = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ManualResetEvent(&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum21" style="color: #606060"&gt;  21:&lt;/span&gt;       }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum22" style="color: #606060"&gt;  22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum23" style="color: #606060"&gt;  23:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CallBack()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum24" style="color: #606060"&gt;  24:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum25" style="color: #606060"&gt;  25:&lt;/span&gt;           method(state);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum26" style="color: #606060"&gt;  26:&lt;/span&gt;           asyncWaitHandle.Set();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum27" style="color: #606060"&gt;  27:&lt;/span&gt;       }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum28" style="color: #606060"&gt;  28:&lt;/span&gt;   }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; WorkerThread&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;     ThreadPoolSynchronizer context;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Thread threadObj;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; endLoop;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; ManagedThreadId&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;         get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; threadObj.ManagedThreadId;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; WorkerThread(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; threadNumber, ThreadPoolSynchronizer context)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context = context;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt;         endLoop = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum20" style="color: #606060"&gt;  20:&lt;/span&gt;         threadObj = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum21" style="color: #606060"&gt;  21:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum22" style="color: #606060"&gt;  22:&lt;/span&gt;         threadObj = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Thread(Run);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum23" style="color: #606060"&gt;  23:&lt;/span&gt;         threadObj.IsBackground = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum24" style="color: #606060"&gt;  24:&lt;/span&gt;         threadObj.Name = &lt;span style="color: #006080"&gt;"Tread-"&lt;/span&gt; + threadNumber.ToString();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum25" style="color: #606060"&gt;  25:&lt;/span&gt;         threadObj.Start();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum26" style="color: #606060"&gt;  26:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum27" style="color: #606060"&gt;  27:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum28" style="color: #606060"&gt;  28:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; EndLoop&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum29" style="color: #606060"&gt;  29:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum30" style="color: #606060"&gt;  30:&lt;/span&gt;         set&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum31" style="color: #606060"&gt;  31:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum32" style="color: #606060"&gt;  32:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;lock&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum33" style="color: #606060"&gt;  33:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum34" style="color: #606060"&gt;  34:&lt;/span&gt;                 endLoop = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum35" style="color: #606060"&gt;  35:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum36" style="color: #606060"&gt;  36:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum37" style="color: #606060"&gt;  37:&lt;/span&gt;         get&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum38" style="color: #606060"&gt;  38:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum39" style="color: #606060"&gt;  39:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;lock&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum40" style="color: #606060"&gt;  40:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum41" style="color: #606060"&gt;  41:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; endLoop;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum42" style="color: #606060"&gt;  42:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum43" style="color: #606060"&gt;  43:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum44" style="color: #606060"&gt;  44:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum45" style="color: #606060"&gt;  45:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum46" style="color: #606060"&gt;  46:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Start()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum47" style="color: #606060"&gt;  47:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum48" style="color: #606060"&gt;  48:&lt;/span&gt;         Debug.Assert(threadObj != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum49" style="color: #606060"&gt;  49:&lt;/span&gt;         Debug.Assert(threadObj.IsAlive == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum50" style="color: #606060"&gt;  50:&lt;/span&gt;         threadObj.Start();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum51" style="color: #606060"&gt;  51:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum52" style="color: #606060"&gt;  52:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum53" style="color: #606060"&gt;  53:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Run()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum54" style="color: #606060"&gt;  54:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum55" style="color: #606060"&gt;  55:&lt;/span&gt;         Debug.Assert(SynchronizationContext.Current == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum56" style="color: #606060"&gt;  56:&lt;/span&gt;         SynchronizationContext.SetSynchronizationContext(context);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum57" style="color: #606060"&gt;  57:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum58" style="color: #606060"&gt;  58:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (EndLoop == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum59" style="color: #606060"&gt;  59:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum60" style="color: #606060"&gt;  60:&lt;/span&gt;             WorkItem workItem = context.GetNext();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum61" style="color: #606060"&gt;  61:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (workItem != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum62" style="color: #606060"&gt;  62:&lt;/span&gt;             {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum63" style="color: #606060"&gt;  63:&lt;/span&gt;                 workItem.CallBack();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum64" style="color: #606060"&gt;  64:&lt;/span&gt;             }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum65" style="color: #606060"&gt;  65:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum66" style="color: #606060"&gt;  66:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum67" style="color: #606060"&gt;  67:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum68" style="color: #606060"&gt;  68:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Abort()&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum69" style="color: #606060"&gt;  69:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum70" style="color: #606060"&gt;  70:&lt;/span&gt;         Debug.Assert(threadObj != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum71" style="color: #606060"&gt;  71:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (threadObj.IsAlive == &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum72" style="color: #606060"&gt;  72:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum73" style="color: #606060"&gt;  73:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum74" style="color: #606060"&gt;  74:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum75" style="color: #606060"&gt;  75:&lt;/span&gt;         EndLoop = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum76" style="color: #606060"&gt;  76:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum77" style="color: #606060"&gt;  77:&lt;/span&gt;         threadObj.Join();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum78" style="color: #606060"&gt;  78:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum79" style="color: #606060"&gt;  79:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum80" style="color: #606060"&gt;  80:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Teraz musimy przypisać nowy kontekst synchronizacji, może to wyglądać tak (przypisanie w linii 2):&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; ThreadPoolSynchronizer syncContext = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ThreadPoolSynchronizer(3);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; SynchronizationContext.SetSynchronizationContext(syncContext);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     ServiceHost host = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ServiceHost(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(UpdateService));&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;     host.Open();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// Block until ready to quit&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     host.Close();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt;     syncContext.Dispose();&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Innym lepszym sposobem jest udekorowanie klasy serwisu własnym atrybutem (tworzenie atrybut&amp;oacute;w wykracza poza ramy tego kursu). Może to wyglądać np. tak (atrybut z dwoma parametrami rozmiar puli oraz nazwa klasy serwisu):&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[ThreadPoolSynchronization(3, &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(UpdateService))]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[ServiceBehavior(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(IUpdateService))]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; UpdateService : IUpdateService&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Atrybut ten musi implementować interfejs &lt;em&gt;IContractBehavior&lt;/em&gt; a w nim następujące metody:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;AddBindingParameters&lt;/em&gt; &amp;ndash; modyfikuje bindingi,&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ApplyClientBehavior&lt;/em&gt; &amp;ndash; modyfikuje lub rozszerza zachowanie serwisu dla wybranych lub wszystkich wiadomości,&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ApplyDispatchBehavior&lt;/em&gt; - &amp;ldquo;wersja od strony serwisu&amp;rdquo; metody &lt;em&gt;ApplyClientBehavior&lt;/em&gt; &amp;ndash; rozszerza zachowanie dla przychodzących wiadomości,&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Validate&lt;/em&gt; &amp;ndash; potwierdza że kontrakt i punkt końcowy mogą obsłużyć zachowanie zaimplementowane w obiekcie.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ponieważ chcemy zmienić&amp;nbsp; zachowanie po stronie serwisu, interesować nas będzie metoda &lt;em&gt;AppliDispatchBehavior&lt;/em&gt;, kt&amp;oacute;ra może być zaimplementowana np tak:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ApplyDispatchBehavior(ContractDescription&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;description, ServiceEndpoint endpoint, DispatchRuntime dispatchRuntime)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #008000"&gt;// ...&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dispatchRuntime.SynchronizationContext == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;        dispatchRuntime.SynchronizationContext = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ThreadPoolSynchronizer(3);&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #008000"&gt;// ...&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Synchronizacja i wywołania zwrotne&lt;/h3&gt;
&lt;p&gt;Obsługując wywołania zwrotne (ang. &lt;em&gt;callback&lt;/em&gt;) także musimy brać pod uwagę problemy z wsp&amp;oacute;łbieżnością. Podobnie jak w przypadku serwisu, u klienta możemy ustawić odpowiednie tryby synchronizacji, zar&amp;oacute;wno imperatywnie jak i deklaratywnie:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Single)]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CallbackClient : ICallback&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #008000"&gt;// Implementation code&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tak jak w &lt;em&gt;ConcurrencyMode&lt;/em&gt; w klasie &lt;em&gt;ServiceBehavior&lt;/em&gt; tak i tutaj mamy trzy możliwe wartości:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Single&lt;/em&gt; &amp;ndash; tylko jedno wywołanie zwrotne jest możliwe w danym czasie, to gwarantuje nam że WCF nie wywoła metody więcej niż raz w tym samym czasie, nie gwarantuje natomiast że inne wątki klienta będą się odwoływać do zasob&amp;oacute;w używanych w tej metodzie, o to musimy sie już sami martwić;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;em&gt;Multiple&lt;/em&gt; &amp;ndash; dozwolone jest wielokrotne wywołanie metody, musimy sami postarać się o obsługę dostępu wielowątkowego;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Reentrant&lt;/em&gt; &amp;ndash; metoda może być wywoływana ponownie przez serwis w tym samym wątku.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Wywołania zwrotne i konteksty synchronizacji&lt;/h4&gt;
&lt;p&gt;Możliwe jest także korzystanie z kontekst&amp;oacute;w synchronizacji w wywołaniach zwrotnych, wystarczy odpowiednio oznaczyć metodę:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="border: 1px solid silver; text-align: left; padding: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New',courier,monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text;"&gt;
&lt;div id="codeSnippet" style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;[CallbackBehavior(UseSynchronizationContext=&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CallbackClient : ICallback&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;    &lt;span style="color: #008000"&gt;// Implementation code&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="border-style: none; text-align: left; padding: 0px; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible;"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Na koniec jeszcze ważna informacja na temat wątk&amp;oacute;w, wywołań zwrotnych i zakleszczeń. Zał&amp;oacute;żmy, że mamy przycisk uruchamiający metodę serwisu. Serwis dokonuje wywołania zwrotnego do aplikacji (dokładniej do wątku interfejsu użytkownika bo stamtąd pochodziło wywołanie serwisu). Wątek interfejsu użytkownika jest teraz zajęty bo czeka na odpowiedź od serwisu&amp;hellip; No i mamy zakleszczenie. Jedynym rozwiązaniem tego problemu jest zrezygnowanie z kontekstu synchronizacji i ustawienie &lt;em&gt;UseSynchronizationContext&lt;/em&gt; na &lt;em&gt;false&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Na tym kończymy kurs.&lt;/p&gt;
&lt;p&gt;Pozostańcie jeszcze z nami gdyż przygotowaliśmy małą niespodziankę.&lt;/p&gt;
&lt;p&gt;Do zobaczenia na egzaminach :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=TUJhJPsT1NQ:HJbhDQgyDPs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?i=TUJhJPsT1NQ:HJbhDQgyDPs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=TUJhJPsT1NQ:HJbhDQgyDPs:0VBWazUhMmc"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=0VBWazUhMmc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/eastgroup?a=TUJhJPsT1NQ:HJbhDQgyDPs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/eastgroup?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/eastgroup/~4/TUJhJPsT1NQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/eastgroup/~3/TUJhJPsT1NQ/post.aspx</link>
      <comments>http://eastgroup.pl/post/70-503-Synchronization.aspx#comment</comments>
      <guid isPermaLink="false">http://eastgroup.pl/post.aspx?id=a6073ad4-90c1-4dcd-bc51-f3c9888b6a8b</guid>
      <pubDate>Tue, 25 May 2010 00:54:00 +0100</pubDate>
      <category>70-503</category>
      <category>Techniczne</category>
      <dc:publisher>cieszak</dc:publisher>
      <pingback:server>http://eastgroup.pl/pingback.axd</pingback:server>
      <pingback:target>http://eastgroup.pl/post.aspx?id=a6073ad4-90c1-4dcd-bc51-f3c9888b6a8b</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://eastgroup.pl/trackback.axd?id=a6073ad4-90c1-4dcd-bc51-f3c9888b6a8b</trackback:ping>
      <wfw:comment>http://eastgroup.pl/post/70-503-Synchronization.aspx#comment</wfw:comment>
      <wfw:commentRss>http://eastgroup.pl/syndication.axd?post=a6073ad4-90c1-4dcd-bc51-f3c9888b6a8b</wfw:commentRss>
    <feedburner:origLink>http://eastgroup.pl/post.aspx?id=a6073ad4-90c1-4dcd-bc51-f3c9888b6a8b</feedburner:origLink></item>
  </channel>
</rss>

