WEBVTT

00:00:00.000 --> 00:00:02.910
Hé, mes amis. Étaient de retour
avec mon bon ami Dean

00:00:02.910 --> 00:00:05.760
parler dans avancé
Async Await, alors syntonisez.

00:00:05.760 --> 00:00:12.810
[MUSIQUE]

00:00:12.810 --> 00:00:14.925
Bienvenue à tout le monde
au Xamarin Show.

00:00:14.925 --> 00:00:16.110
Je suis ton hôte James Montemagno.

00:00:16.110 --> 00:00:18.570
Aujourd'hui, de retour pour la deuxième
temps mon bon ami

00:00:18.570 --> 00:00:21.540
Dean sur parler d'Async
Attendent. Comment ça se passe, Dean ?

00:00:21.540 --> 00:00:22.380
C'est bon. Comment vas-tu?

00:00:22.380 --> 00:00:24.030
Je fais absolument fantastique.

00:00:24.030 --> 00:00:26.100
Maintenant, dans le premier épisode,

00:00:26.100 --> 00:00:29.610
vous avez montré l'utilisation de base
cas d'Async Await,

00:00:29.610 --> 00:00:31.665
ce qui ne va pas, ce qui est bon.

00:00:31.665 --> 00:00:33.150
Qu'est-ce que tu nous attends aujourd'hui ?

00:00:33.150 --> 00:00:34.200
Donc, cette fois-ci,

00:00:34.200 --> 00:00:35.700
nous allons pour des scénarios avancés.

00:00:35.700 --> 00:00:37.290
Un tas de caisses de bord.

00:00:37.290 --> 00:00:39.780
Scénarios avancés utilisant
différents mécanismes

00:00:39.780 --> 00:00:41.610
dans le TPL et aller en profondeur.

00:00:41.610 --> 00:00:43.440
C'est génial. Cool. Je l'aime.

00:00:43.440 --> 00:00:45.840
Ne perdons pas de temps.
et nous allons entrer dans les codes.

00:00:45.840 --> 00:00:47.565
Allons droit au travail. D'accord.

00:00:47.565 --> 00:00:50.295
Pour le dernier, c'est le plus,

00:00:50.295 --> 00:00:51.750
Je ne veux pas dire compliqué,

00:00:51.750 --> 00:00:53.640
mais un très gros cas de bord.

00:00:53.640 --> 00:00:54.165
D'accord.

00:00:54.165 --> 00:00:57.225
Donc, ce que c'est à long terme
Tâches. Donc tu es familier ?

00:00:57.225 --> 00:00:58.035
Je le suis.

00:00:58.035 --> 00:01:00.260
Les tâches de longue durée

00:01:00.260 --> 00:01:02.960
le TPL sont des tâches qui
peut fonctionner pendant une longue période.

00:01:02.960 --> 00:01:04.850
Parfois, vous venez de
veulent quelque chose à courir.

00:01:04.850 --> 00:01:09.470
Peut-être qu'il tire, peut-être que c'est
vérifier les valeurs de votre accéléromètre,

00:01:09.470 --> 00:01:10.880
quelque chose comme ça,
en arrière-plan.

00:01:10.880 --> 00:01:12.745
Tu ne veux pas vraiment l'arrêter.

00:01:12.745 --> 00:01:15.360
Donc, dans un mauvais cas,

00:01:15.360 --> 00:01:17.220
dans mon mauvais exemple ici,

00:01:17.220 --> 00:01:19.190
Je vais commencer

00:01:19.190 --> 00:01:23.285
une centaine de tâches qui sont
points d'impression chaque seconde.

00:01:23.285 --> 00:01:24.350
C'est logique.

00:01:24.350 --> 00:01:25.805
Ils vont juste courir.

00:01:25.805 --> 00:01:28.410
Feu et oublier, oublier
eux, et ils vont juste courir.

00:01:28.410 --> 00:01:30.210
Visual Studio vous crie même.

00:01:30.210 --> 00:01:33.060
Exactement. Le visuel
Studio est plus intelligent que moi.

00:01:33.060 --> 00:01:36.020
Puis, en plus de cela,

00:01:36.020 --> 00:01:38.500
Je vais exécuter 100 tâches
qui en fait complète.

00:01:38.500 --> 00:01:39.240
D'accord.

00:01:39.240 --> 00:01:40.550
Nous verrons donc ce que
arrive à ceux-ci.

00:01:40.550 --> 00:01:43.310
Ces tâches sont donc les
tâches que dans votre application,

00:01:43.310 --> 00:01:44.660
vous voulez vraiment courir,

00:01:44.660 --> 00:01:46.400
peut-être que vous téléchargez HTML,

00:01:46.400 --> 00:01:48.920
téléchargement d'images,
faire des choses comme ça.

00:01:48.920 --> 00:01:50.810
D'accord. Voici donc un mauvais exemple.

00:01:50.810 --> 00:01:54.920
Nous courons 100 tâches
qui impriment des points chaque seconde.

00:01:54.920 --> 00:01:57.575
Donc, chacun de ces
tâches est l'impression d'un point.

00:01:57.575 --> 00:01:59.705
Chaque seconde,
c'est le feu oublier.

00:01:59.705 --> 00:02:02.374
Ensuite, nous commençons
100 autres tâches

00:02:02.374 --> 00:02:04.975
qui sont les tests qui
en fait, nous voulons courir.

00:02:04.975 --> 00:02:07.160
Je vois. Alors, qu'est-ce que nous voyons
dans la sortie ici alors?

00:02:07.160 --> 00:02:08.240
Donc, dans la sortie ici,

00:02:08.240 --> 00:02:10.370
Nous allons voir qu'un tas

00:02:10.370 --> 00:02:12.350
de threads commencent
de la piscine de fil.

00:02:12.350 --> 00:02:15.545
Cette is.NET gestion
nos fils pour nous.

00:02:15.545 --> 00:02:16.040
D'accord. Je l'ai.

00:02:16.040 --> 00:02:20.285
Nous en avons déjà parlé. Ainsi, comme
vous pouvez voir, c'est vraiment lent.

00:02:20.285 --> 00:02:23.090
Il n'y a pas de poids dans
entre ces deux.

00:02:23.090 --> 00:02:26.725
Donc, le deuxième lot d'un 100
les tâches devraient déjà être en cours d'exécution.

00:02:26.725 --> 00:02:29.940
Mais, parce que ceux-ci sont si insistants,

00:02:29.940 --> 00:02:32.630
ils sont en cours d'exécution tous les
deuxième pour 100 tâches.

00:02:32.630 --> 00:02:35.120
C'est vraiment prendre
un certain temps pour tourner vers le haut.

00:02:35.120 --> 00:02:38.150
Donc, nous verrons une fois le fil
piscine rattrape ici.

00:02:38.150 --> 00:02:41.380
Nous devrions commencer à voir ces
tests de tir. Et voilà.

00:02:41.380 --> 00:02:42.130
C'est parti.

00:02:42.130 --> 00:02:43.340
Donc, ce sont les tâches que nous

00:02:43.340 --> 00:02:45.275
veulent et ils sont
en cours d'exécution à l'achèvement.

00:02:45.275 --> 00:02:46.610
Mais, entre les deux, vous verrez que

00:02:46.610 --> 00:02:50.205
le feu tâche précédente et oublier
sont encore imprimer leurs points.

00:02:50.205 --> 00:02:53.280
Je vois. Je t'ai eu. ainsi
tout est tout.

00:02:53.280 --> 00:02:56.655
Aussi, nous voyons cette collecte des ordures
devenir fou un peu.

00:02:56.655 --> 00:02:57.840
Ce n'est pas très content avec nous, oui.

00:02:57.840 --> 00:03:02.300
Non, c'est pas le cas. Ce n'est pas trop
rare pour être honnête.

00:03:02.300 --> 00:03:05.090
Nous avons vu des cas dans ce
où le pool de fils est

00:03:05.090 --> 00:03:08.225
juste étouffé et pas de tâches
peut commencer pendant quelques minutes.

00:03:08.225 --> 00:03:10.970
Parfois, si vous l'utilisez incorrectement,

00:03:10.970 --> 00:03:12.320
il peut se coincer.

00:03:12.320 --> 00:03:14.045
Je t'ai eu. Alors, comment puis-je résoudre ce problème?

00:03:14.045 --> 00:03:16.070
Alors recommençons

00:03:16.070 --> 00:03:18.215
l'application pour s'assurer que
ces tâches sont mortes.

00:03:18.215 --> 00:03:19.550
Je t'ai eu.

00:03:19.550 --> 00:03:21.545
Alors, on ira au fixing.

00:03:21.545 --> 00:03:21.995
Bien sûr.

00:03:21.995 --> 00:03:25.340
Nous avons donc le
outils pour ce faire.

00:03:25.340 --> 00:03:27.965
Nous pouvons avoir un tas de long
courir en arrière-plan,

00:03:27.965 --> 00:03:31.610
mais ce que nous devons faire est
utiliser Task.Factory.StartNew.

00:03:31.610 --> 00:03:34.055
Ce code à l'intérieur est le même.

00:03:34.055 --> 00:03:35.960
On imprime ces points.

00:03:35.960 --> 00:03:39.420
Mais alors, dans le paramètre
pour les options de création,

00:03:39.420 --> 00:03:42.135
vous devez ajouter
TaskCreationOptions.Longrunning.

00:03:42.135 --> 00:03:45.945
Je vois. Donc, c'est quelque chose
to.NET usine de tâches.

00:03:45.945 --> 00:03:48.570
Quelle est la différence
entre cette Task.Start

00:03:48.570 --> 00:03:50.460
et l'usine de tâches?
Commencez par là, je suppose.

00:03:50.460 --> 00:03:52.110
Alors Tasks.Run est en fait

00:03:52.110 --> 00:03:56.430
Task.Factory.StartNew avec
paramètres par défaut.

00:03:56.430 --> 00:03:57.915
C'est un raccourci pour nous.

00:03:57.915 --> 00:03:58.440
Je t'ai eu.

00:03:58.440 --> 00:04:01.100
Alors Task.Factory.StartNew
est plus fine.

00:04:01.100 --> 00:04:02.180
Nous avons un tas de paramètres.

00:04:02.180 --> 00:04:03.695
J'ai ajouté le lien vers la référence.

00:04:03.695 --> 00:04:04.955
Magnifique.

00:04:04.955 --> 00:04:08.180
Il y a beaucoup plus
que nous pouvons tenir là-dedans.

00:04:08.180 --> 00:04:11.785
Mais, fondamentalement, quand nous avons mis
une tâche aussi longue,

00:04:11.785 --> 00:04:15.695
il a un fil séparé
piscine qu'il est intelligent au sujet

00:04:15.695 --> 00:04:19.655
et il sera en mesure de surabonner.

00:04:19.655 --> 00:04:23.510
Vous pouvez lire la documentation.
Jetons un coup d'oeil.

00:04:23.510 --> 00:04:26.500
C'est le seul changement,
Task.factory.StartNew.

00:04:26.500 --> 00:04:30.540
Donc, nous allons voir, ce sont les
100 tâches qui impriment des points.

00:04:30.540 --> 00:04:33.420
Nos autres tâches commencent déjà.

00:04:33.420 --> 00:04:34.185
Oui, c'est vrai.

00:04:34.185 --> 00:04:36.465
C'est comme ça. Nous
n'a même pas eu à attendre.

00:04:36.465 --> 00:04:38.580
Donc, auparavant, nous
avait en fait une plaquette.

00:04:38.580 --> 00:04:41.100
Un tas d'entre eux, tout ce qu'ils obtiennent
Prévue. Tout s'est passé.

00:04:41.100 --> 00:04:44.945
Alors maintenant, nous voyons réellement
les choses fonctionnent comme prévu.

00:04:44.945 --> 00:04:46.985
Dès le début,

00:04:46.985 --> 00:04:49.590
toutes les tâches étaient toutes
en cours d'exécution en même temps.

00:04:49.590 --> 00:04:50.220
Exactement.

00:04:50.220 --> 00:04:52.025
Le long terme est
continue.

00:04:52.025 --> 00:04:55.310
Vous avez déjà terminé ces
100 tâches où avant de nous asseoir

00:04:55.310 --> 00:04:58.565
pour ce que comme 20 secondes
l'attend. C'est dingue.

00:04:58.565 --> 00:04:58.790
Oui, c'est vrai.

00:04:58.790 --> 00:04:59.480
Très cool.

00:04:59.480 --> 00:05:00.305
C'est insensé.

00:05:00.305 --> 00:05:02.115
Eh bien, Dean, c'est génial.

00:05:02.115 --> 00:05:04.800
Juste tellement de contenu génial
juste emballé juste là.

00:05:04.800 --> 00:05:05.160
Merci, James.

00:05:05.160 --> 00:05:07.550
Maintenant, bien sûr, nous allons mettre
tous les liens vers le spectacle en

00:05:07.550 --> 00:05:10.490
les notes d'exposition ci-dessous pour
toutes les meilleures pratiques,

00:05:10.490 --> 00:05:12.545
documentation, cette
exemple de code, tout.

00:05:12.545 --> 00:05:17.030
Vous pouvez également aller à
aka.MS/xamarinbestpractices

00:05:17.030 --> 00:05:19.310
pour en savoir plus sur tous les
des meilleures pratiques en matière de

00:05:19.310 --> 00:05:21.820
Xamarin pour le CAT mobile
Équipe qui est super génial.

00:05:21.820 --> 00:05:23.695
Dean, merci beaucoup
pour montrer tout cela.

00:05:23.695 --> 00:05:24.850
Merci d'avoir
moi dans l'émission, James.

00:05:24.850 --> 00:05:26.675
Absolument. à votre santé. S'assurer

00:05:26.675 --> 00:05:28.925
vous suivez le Xamarin
Afficher sur YouTube,

00:05:28.925 --> 00:05:30.425
Canal Neuf. Tu sais où aller.

00:05:30.425 --> 00:05:31.850
Appuyez sur cette sonnette de notification,

00:05:31.850 --> 00:05:33.725
faire partie de la
l'escouade de notification.

00:05:33.725 --> 00:05:35.390
Je suis James Montemagno C'est

00:05:35.390 --> 00:05:38.550
Le Xamarin Show, et
Merci d'avoir regardé.

00:05:45.230 --> 00:05:48.050
Hé, James.
Je voulais juste m'enregistrer.

00:05:48.050 --> 00:05:50.105
et je vous remercie pour
regarder cette vidé o.

00:05:50.105 --> 00:05:53.195
Maintenant, faites toutes les choses que vous
savoir que vous voulez faire comme,

00:05:53.195 --> 00:05:55.760
s'abonner, et ding
que la sonnette de notification,

00:05:55.760 --> 00:05:57.770
faire partie de la
l'escouade de notification.

00:05:57.770 --> 00:05:59.150
Pendant que vous êtes ici, vérifiez

00:05:59.150 --> 00:06:02.360
toutes ces vidé os géniales
que j'ai déjà enregistré.

00:06:02.360 --> 00:06:05.970
Cliquez sur ce truc. Cliquez sur
Il. Fais gaffe. Fais-le.

