Na pomoc przychodzi .NET 4.5 wraz z nowymi słowami kluczowymi: async, await. Jak je stosować i w jaki sposób pomagają nam tworzyć aplikacje asynchroniczne zobaczymy w poniższym przykładzie.
Tworzymy zwykłą aplikację typu Windows Forms. Kładziemy na formatkę kontrolkę Button oraz Label. Oprogramowujemy zdarzenie kliknięcia przycisku:
Code:
Uruchamiamy program, naciskamy przycisk. Jeżeli w tym momencie spróbujemy przesunąć okienko programu nie uda się nam to, aż do czasu pojawienia się na Label-u napisu Done. Dzieje się tak dlatego, ponieważ główny wątek został zamrożony na 5 sekund. Obrazuje to przykładową sytuację pobierania danych z Web Service.
Powyższą metodę w kilku krokach można przerobić z synchronicznej na asynchroniczną dzięki czemu nasz interfejs nie zostanie zamrożony:
Code:
Co się tutaj zmieniło?
Dodaliśmy metodę AsynchMethod która zwraca Task<string> czyli tak na prawdę tworzony jest tutaj opakowany wątek w którym jest wywoływana nasza metoda.
Metoda button1_Click otrzymała słówko kluczowe async oznaczające że metoda ta ma zostać wykonana asynchronicznie.
Metoda AsynchMethod została poprzedzona słówkiem await. Słówko to oznacza zapowiedź tego, iż zostanie zwrócony wynik w nieokreślonej przyszłości. Po jego zwróceniu mają się wykonać kolejne linijki kodu.
Przykład ten jest bardzo prosty - taki miał być w zamiarze. Obrazuje w jaki sposób pisać własne metody asynchroniczne.
Jest to ważne z punktu widzenia pisania aplikacji, które chcemy umieścić w sklepie Microsot. Aby móc sprzedawać w nim swoje aplikacje, należy przejść certyfikację. Jednym z punktów które należy zaliczyć aby otrzymać certyfikat jest ten mówiący o tym, iż każda metoda trwająca powyżej 50 milisekund musi być wywołana w sposób asynchroniczny.
Warto więc już teraz zacząć programować asynchronicznie, aby w późniejszym czasie nie tracić czasu na poprawianie kodu.
Zagadnienie wyjaśnione niezwykle prosto i przejrzyście. Podziękowania.
OdpowiedzUsuń.
OdpowiedzUsuń