WEBVTT

00:00:00.000 --> 00:00:02.910
>> Hej, przyjaciele. Wróciły
z moim dobrym przyjacielem Dean

00:00:02.910 --> 00:00:05.760
mówienie w zaawansowanym
Async await, więc dostroić.

00:00:05.760 --> 00:00:12.810
MUZYKI

00:00:12.810 --> 00:00:14.925
>> Witamy z powrotem wszystkich
do programu Xamarin show.

00:00:14.925 --> 00:00:16.110
Jestem twoim gospodarzem James Montemagno.

00:00:16.110 --> 00:00:18.570
Dzisiaj, z powrotem na drugą
czas mój dobry przyjaciel

00:00:18.570 --> 00:00:21.540
Dean na mówienie o Async
Await. Jak to się dzieje, Dean?

00:00:21.540 --> 00:00:22.380
>> Dobry. Jak się miewasz?

00:00:22.380 --> 00:00:24.030
>> Robię absolutnie fantastyczne.

00:00:24.030 --> 00:00:26.100
Teraz, w pierwszym odcinku,

00:00:26.100 --> 00:00:29.610
ty pokazał od podstawowy używać
przypadkach Async await,

00:00:29.610 --> 00:00:31.665
co jest nie tak, co jest dobre.

00:00:31.665 --> 00:00:33.150
Co masz w sklepie dla nas dzisiaj?

00:00:33.150 --> 00:00:34.200
>> Więc ten czas wokół,

00:00:34.200 --> 00:00:35.700
mamy zamiar zaawansowanych scenariuszy.

00:00:35.700 --> 00:00:37.290
Kilka przypadków krawędzi.

00:00:37.290 --> 00:00:39.780
Zaawansowane scenariusze przy użyciu
różnych mechanizmów

00:00:39.780 --> 00:00:41.610
w TPL i będzie głęboko.

00:00:41.610 --> 00:00:43.440
>> Bardzo niesamowite. Cool. Kocham to.

00:00:43.440 --> 00:00:45.840
Cóż, nie marnujmy czasu na wszystkich
i przejdźmy do kodów.

00:00:45.840 --> 00:00:47.565
>> Przejdźmy do niego. W porządku.

00:00:47.565 --> 00:00:50.295
Dla ostatniego z nich jest to najbardziej,

00:00:50.295 --> 00:00:51.750
Nie chcę mówić skomplikowane,

00:00:51.750 --> 00:00:53.640
ale bardzo duży przypadek krawędzi.

00:00:53.640 --> 00:00:54.165
>> Wszystko w porządku.

00:00:54.165 --> 00:00:57.225
>> Więc co to jest długo działa
Zadania. Więc jesteś zaznajomiony?

00:00:57.225 --> 00:00:58.035
>> Jestem.

00:00:58.035 --> 00:01:00.260
>> Tak długo działające zadania w

00:01:00.260 --> 00:01:02.960
TPL to zadania, które
może działać przez długi czas.

00:01:02.960 --> 00:01:04.850
Czasami po prostu
chcesz coś uruchomić.

00:01:04.850 --> 00:01:09.470
Może to ciągnięcie, może to
Sprawdzanie wartości akcelerometru,

00:01:09.470 --> 00:01:10.880
coś takiego,
uruchomione w tle.

00:01:10.880 --> 00:01:12.745
Naprawdę nie chcesz go zatrzymać.

00:01:12.745 --> 00:01:15.360
Więc w złym przypadku,

00:01:15.360 --> 00:01:17.220
w moim złym przykładzie tutaj,

00:01:17.220 --> 00:01:19.190
Zamierzam zacząć

00:01:19.190 --> 00:01:23.285
100 zadania, które są
Drukowanie punktów w każdej sekundzie.

00:01:23.285 --> 00:01:24.350
>> To ma sens.

00:01:24.350 --> 00:01:25.805
>> Są po prostu będzie uruchomiony.

00:01:25.805 --> 00:01:28.410
Ogień i zapomnieć, zapomnieć o
je, a oni po prostu uruchomić.

00:01:28.410 --> 00:01:30.210
>> Visual Studio jest nawet krzyczeć Ciebie.

00:01:30.210 --> 00:01:33.060
>> Dokładnie. Wizualny
Studio jest mądrzejszy ode mnie.

00:01:33.060 --> 00:01:36.020
Następnie, na początku, że

00:01:36.020 --> 00:01:38.500
Zamierzam uruchomić zadania 100
które faktycznie są kompletne.

00:01:38.500 --> 00:01:39.240
>> Okay.

00:01:39.240 --> 00:01:40.550
>> Więc zobaczymy, co
się z nimi dzieje.

00:01:40.550 --> 00:01:43.310
Tak więc te zadania są
zadania, które w aplikacji,

00:01:43.310 --> 00:01:44.660
ty rzeczywiście potrzeba wobec biegać,

00:01:44.660 --> 00:01:46.400
może pobierasz HTML,

00:01:46.400 --> 00:01:48.920
Pobieranie obrazów,
robić takie rzeczy.

00:01:48.920 --> 00:01:50.810
W porządku. Więc oto zły przykład.

00:01:50.810 --> 00:01:54.920
Uruchamiamy zadanie 100
które drukujesz kropki co sekundę.

00:01:54.920 --> 00:01:57.575
Więc każdy z nich
zadań jest drukowanie kropki.

00:01:57.575 --> 00:01:59.705
Każda sekunda,
to wypalanie zapomnieć.

00:01:59.705 --> 00:02:02.374
Następnie zaczynasz
a 100 inne zadania

00:02:02.374 --> 00:02:04.975
które są badaniami, które
naprawdę chcemy uruchomić.

00:02:04.975 --> 00:02:07.160
>> Widzę. Więc co widzimy
w wyjściu tutaj?

00:02:07.160 --> 00:02:08.240
>> Więc w wyjściu tutaj,

00:02:08.240 --> 00:02:10.370
zobaczymy, że kilka

00:02:10.370 --> 00:02:12.350
wątków zaczynają
z puli wątków.

00:02:12.350 --> 00:02:15.545
To is.NET zarządzanie
Nasze wątki dla nas.

00:02:15.545 --> 00:02:16.040
>> Okay. Mam.

00:02:16.040 --> 00:02:20.285
>> Rozmawialiśmy o tym wcześniej. Tak jak
widać, to naprawdę powoli.

00:02:20.285 --> 00:02:23.090
Nie ma wagi w
między tymi dwoma.

00:02:23.090 --> 00:02:26.725
Więc druga partia 100
zadania powinny być już uruchomione.

00:02:26.725 --> 00:02:29.940
Ale, ponieważ są one tak natarstent,

00:02:29.940 --> 00:02:32.630
oni ' kolejny każdy
sekundę dla 100 zadań.

00:02:32.630 --> 00:02:35.120
To naprawdę biorąc
chwilę, aby się rozkręcić.

00:02:35.120 --> 00:02:38.150
Więc zobaczymy raz wątek
basen łapie się tutaj.

00:02:38.150 --> 00:02:41.380
Powinniśmy zacząć widzieć te
testy wypalania. Nie idziemy.

00:02:41.380 --> 00:02:42.130
>> Nie pójdziemy.

00:02:42.130 --> 00:02:43.340
>> Więc są to zadania, które

00:02:43.340 --> 00:02:45.275
chcą i są
uruchomiony do ukończenia.

00:02:45.275 --> 00:02:46.610
Ale, między, zobaczysz, że

00:02:46.610 --> 00:02:50.205
Poprzedni ogień zadania i zapomnieć
nadal drukuje swoje kropki.

00:02:50.205 --> 00:02:53.280
>> Widzę. Masz. Więc
wszystko jest wszystko.

00:02:53.280 --> 00:02:56.655
Ponadto widzimy tej kolekcji garbage
będzie szalony trochę.

00:02:56.655 --> 00:02:57.840
To nie jest bardzo zadowolony z nami, tak.

00:02:57.840 --> 00:03:02.300
>> Nie. To nie jest zbyt
Niezbyt często, aby być uczciwym.

00:03:02.300 --> 00:03:05.090
Widzieliśmy przypadki w tym
gdzie Pula wątków jest

00:03:05.090 --> 00:03:08.225
tylko uduszony i nie ma zadań
można uruchomić przez kilka minut.

00:03:08.225 --> 00:03:10.970
Czasami, jeśli używasz go nieprawidłowo,

00:03:10.970 --> 00:03:12.320
może się zaciął.

00:03:12.320 --> 00:03:14.045
>> Masz. Więc jak to naprawić?

00:03:14.045 --> 00:03:16.070
>> Więc niech tylko restart

00:03:16.070 --> 00:03:18.215
aplikacji, aby upewnić się, że
te zadania są martwe.

00:03:18.215 --> 00:03:19.550
>> Masz.

00:03:19.550 --> 00:03:21.545
>> Następnie pójdziemy do poprawki.

00:03:21.545 --> 00:03:21.995
>> Pewnie.

00:03:21.995 --> 00:03:25.340
>> Więc mamy
narzędzi, aby to zrobić.

00:03:25.340 --> 00:03:27.965
Możemy mieć kilka długich
działające w tle,

00:03:27.965 --> 00:03:31.610
ale to, co musimy zrobić, to
Użyj Task. Factory. StartNew.

00:03:31.610 --> 00:03:34.055
Ten kod wewnątrz jest taka sama.

00:03:34.055 --> 00:03:35.960
Po prostu drukujemy te kropki.

00:03:35.960 --> 00:03:39.420
Jednak w parametrze
dla opcji tworzenia,

00:03:39.420 --> 00:03:42.135
musisz dodać
Właściwość TaskCreationOptions. LongRunning.

00:03:42.135 --> 00:03:45.945
>> Widzę. Więc to jest coś
wbudowane fabryki zadań to.NET.

00:03:45.945 --> 00:03:48.570
Jaka jest różnica
między tym Task. Start

00:03:48.570 --> 00:03:50.460
i fabryki zadań?
Zacznij tutaj, chyba.

00:03:50.460 --> 00:03:52.110
>> Więc Tasks. Run jest faktycznie

00:03:52.110 --> 00:03:56.430
Zadanie. Factory. StartNew z
parametrów domyślnych.

00:03:56.430 --> 00:03:57.915
Jest to skrót dla nas.

00:03:57.915 --> 00:03:58.440
>> Masz.

00:03:58.440 --> 00:04:01.100
>> Więc Task. Factory. StartNew
jest bardziej drobnoziarnisty.

00:04:01.100 --> 00:04:02.180
Mamy kilka parametrów.

00:04:02.180 --> 00:04:03.695
Dodałem link do referencji.

00:04:03.695 --> 00:04:04.955
>> Piękne.

00:04:04.955 --> 00:04:08.180
>> Jest o wiele więcej
niż możemy tam zmieścić.

00:04:08.180 --> 00:04:11.785
Ale, w zasadzie, kiedy ustawiamy
zadanie w długim biegu,

00:04:11.785 --> 00:04:15.695
ma oddzielny gwint
basen, który jest inteligentny

00:04:15.695 --> 00:04:19.655
i będzie w stanie oversubscribe.

00:04:19.655 --> 00:04:23.510
Możesz przeczytać dokumentację.
Przyjrzyjmy się więc.

00:04:23.510 --> 00:04:26.500
Jest to jedyna zmiana,
Task. Factory. StartNew.

00:04:26.500 --> 00:04:30.540
Więc zobaczymy, to są
100 zadania, które drukujesz kropki.

00:04:30.540 --> 00:04:33.420
Nasze inne zadania już się zaczynają.

00:04:33.420 --> 00:04:34.185
>> tak.

00:04:34.185 --> 00:04:36.465
>> Właśnie tak. Znaleźliśmy
nawet nie musiał czekać.

00:04:36.465 --> 00:04:38.580
>> Tak wcześniej,
rzeczywiście miał Wafer.

00:04:38.580 --> 00:04:41.100
Kilka z nich, wszystkie one dostać
Zaplanowane. Wszystko się wydarzyło.

00:04:41.100 --> 00:04:44.945
Więc teraz, jesteśmy rzeczywiście widząc
rzeczy działają zgodnie z oczekiwaniami.

00:04:44.945 --> 00:04:46.985
Od samego początku

00:04:46.985 --> 00:04:49.590
wszystkie zadania były
uruchomione równocześnie.

00:04:49.590 --> 00:04:50.220
>> Dokładnie.

00:04:50.220 --> 00:04:52.025
>> Długi bieg jest
nadal dalej.

00:04:52.025 --> 00:04:55.310
Już ukończono te
100 zadań, gdzie przed siedzieliśmy

00:04:55.310 --> 00:04:58.565
na co jak 20 sekund
czekając na to. To szaleństwo.

00:04:58.565 --> 00:04:58.790
>> tak.

00:04:58.790 --> 00:04:59.480
>> Bardzo fajne.

00:04:59.480 --> 00:05:00.305
>> To szaleństwo.

00:05:00.305 --> 00:05:02.115
>> Cóż, Dean, to jest niesamowite.

00:05:02.115 --> 00:05:04.800
Tylko tyle wspaniałych treści
tylko zapakowane w prawo.

00:05:04.800 --> 00:05:05.160
>> Dzięki, Jakub.

00:05:05.160 --> 00:05:07.550
>> Teraz, oczywiście, umieścimy
wszystkie linki do pokazu w

00:05:07.550 --> 00:05:10.490
Poniższe uwagi pokazują,
wszystkie najlepsze praktyki,

00:05:10.490 --> 00:05:12.545
dokumentacji
przykładowy kod, wszystko.

00:05:12.545 --> 00:05:17.030
Można również przejść do
aka.MS/xamarinbestpractices

00:05:17.030 --> 00:05:19.310
Aby dowiedzieć się więcej o wszystkich
najlepszych praktyk w

00:05:19.310 --> 00:05:21.820
Xamarin dla przenośnych CAT
Zespół, który jest super niesamowite.

00:05:21.820 --> 00:05:23.695
Dean, dziękuję bardzo
do pokazywania tego wszystkiego.

00:05:23.695 --> 00:05:24.850
>> Dzięki za posiadanie
mnie na wystawie, James.

00:05:24.850 --> 00:05:26.675
>> Absolutnie. Okrzyki. Upewnij się

00:05:26.675 --> 00:05:28.925
Postępuj zgodnie z Xamarin
Pokaż w YouTube,

00:05:28.925 --> 00:05:30.425
Kanał dziewięć. Wiesz, gdzie iść.

00:05:30.425 --> 00:05:31.850
Hit, że dzwonek powiadomienia,

00:05:31.850 --> 00:05:33.725
stać się częścią
oddziału zgłoszeniami.

00:05:33.725 --> 00:05:35.390
I'm James Montemagno ten obiekt

00:05:35.390 --> 00:05:38.550
Pokaz Xamarin i
Dzięki za oglądanie.

00:05:45.230 --> 00:05:48.050
>> Hej, Jakub tutaj.
Po prostu chciałem się zameldować

00:05:48.050 --> 00:05:50.105
i dziękuję za
oglądania tego filmu.

00:05:50.105 --> 00:05:53.195
Teraz, wykonaj wszystkie rzeczy, które
wiesz, że chcesz robić jak lubisz,

00:05:53.195 --> 00:05:55.760
Subskrybuj i Ding
tego dzwonka powiadomień,

00:05:55.760 --> 00:05:57.770
stać się częścią
oddziału zgłoszeniami.

00:05:57.770 --> 00:05:59.150
Gdy jesteś tutaj, sprawdź

00:05:59.150 --> 00:06:02.360
wszystkie te niesamowite filmy
że już nagrałem.

00:06:02.360 --> 00:06:05.970
Kliknij na to coś. Kliknij
to. Obejrzyj go. Zrób to.

