‫Bon retour et dernier mot.
‫Vous avez vu comment utiliser les menaces et comment configurer des menaces et les démarrer simplement.
‫Et dans cette vidéo, nous allons jeter un œil à l'achèvement.
‫Nous voulons donc utiliser un fil pour faire quelque chose.
‫Et seulement si une tâche spécifique est accomplie, alors nous voulons aller de l'avant.
‫Voyons donc cela.
‫Je vais créer une nouvelle variable appelée Task Achèvement Source, et j'ai donc besoin d'une nouvelle tâche, d'une nouvelle source
‫d'achèvement et d'un booléen.
‫Donc, comme vous pouvez le voir, il se plaint car il ne sait pas quelle est cette source d'achèvement de tâche.
‫Et pour le réparer, j'ai besoin d'utiliser des tâches de threading du système.
‫Je vais donc le faire pendant une seconde, puis j'entends ce que je vais faire ensuite, je vais juste créer une
‫variable de test.
‫Je vais juste appeler une tâche, qui est une source d'achèvement de tâche, ou nous appelons simplement cette source d'achèvement
‫de tâche.
‫Et nous avons dit que c'est la tâche aux résultats.
‫Nous voulons donc avoir le résultat de cette tâche.
‫Alors disons qu'il y avait une tâche spécifique qui devrait s'exécuter et faire quelque chose et ensuite nous voulons voir les
‫résultats.
‫Donc si ça a marché ou ça n'a pas marché et pour tester ça, je vais me débarrasser de cette ligne rouge ici.
‫Je vais donc simplement exécuter le code comme s'il n'y avait rien d'autre dans cette méthode principale, seulement ce code ici.
‫Je vais donc le lancer.
‫Et comme vous pouvez le voir, il ne se passe rien.
‫Ainsi, la console est maintenue en vie ou ouverte, même si nous n'avons pas cette ligne rouge de la console,
‫que nous utilisons généralement toujours si nous voulons garder la console ouverte, cela signifie qu'il y a quelque chose qui n'est pas terminé.
‫Donc, ici, ce n'est jamais vraiment terminé car il n'y a aucun résultat.
‫Ainsi, cette source de complétion n'est jamais réellement complète.
‫Donc, ce n'est jamais réglé sur vrai.
‫Et c'est quelque chose que nous pouvons faire manuellement.
‫Disons donc que nous avons une tâche et que nous voulons avoir le résultat tel que nous l'avons ici, mais nous voulons en fait terminer la
‫tâche à un moment donné.
‫Alors, que devons-nous faire pour cela, c'est créer un fil.
‫Je vais donc créer un fil
‫plus grand qui équivaut à un nouveau fil, et ce fil ne sera pas démarré tout de suite.
‫J'utilise donc une approche un peu différente de celle que nous avons utilisée ici.
‫Donc ici, nous avons juste dit nouveau fil et puis nous avons eu le corps du fil.
‫Donc, le code qui doit être exécuté chaque fois que ce thread est lancé et que nous avons lancé tout de suite, nous
‫avons commencé tout de suite.
‫Mais ici, nous ne créons que le fil et pouvons en faire des choses plus tard.
‫Alors ici, je vais juste dire le fil de sommeil.
‫Dormez donc pendant, disons, 1000 millisecondes, puis essayez de définir cette source d'achèvement de tâche
‫sur true.
‫Essayez donc de définir le résultat qui fera la transition de la tâche sous-jacente vers les tâches exécutées jusqu'à l'état
‫d'achèvement, ce qui signifie que c'est terminé.
‫Droit.
‫Alors il va essayer de dire que c'est fait pour vrai.
‫Cela signifie donc que cette source d'achèvement de tâche sera définie sur true et ce n'est qu'alors que nous irons jusqu'ici, ce
‫qui est le résultat de cette tâche.
‫Créons donc une petite étape ici, donc Dybbuk Step et la vérification, les identifiants de menace, et maintenant pour démarrer une menace,
‫nous devons en fait appeler le thread qui démarre.
‫Et comme vous pouvez le voir, cet objet de fil ici, qui est un fil qui fera tout cela, va être
‫démarré.
‫Je vais donc commencer un fil comme celui-ci.
‫Et pendant que nous y sommes, examinons ce que le fil a à offrir.
‫Ainsi, chaque fois que vous créez un objet thread, il existe plusieurs propriétés et méthodes à utiliser ou nous pouvons en utiliser
‫plusieurs ici.
‫Ainsi, vous pouvez voir qu'un tableau est celui où vous pouvez abandonner le thread afin que vous puissiez arrêter le thread, mais cela
‫exécutera une exception ou provoquera une exception.
‫C'est donc très dangereux à faire en fait.
‫Vous pouvez donc planter votre application avec cela en fonction de notre sécurité, construisez-la.
‫Mais un tableau est quelque chose que vous pouvez, bien sûr, utiliser pour arrêter un thread, mais vous ne savez jamais jusqu'où il se
‫trouve et son exécution.
‫Il peut donc arriver qu'il ne fasse pas bien les tâches que vous vouliez en finir.
‫Et cela coûtera, eh bien, votre problème ne fonctionne pas correctement.
‫Et puis, bien sûr, il existe de nombreuses autres méthodes assez intéressantes, comme des propriétés de mot comme celle-ci est vivante,
‫ce qui signifie que cette menace est actuellement vivante puis son arrière-plan, ce qui signifie que nous pouvons dire
‫qu'un fil doit s'exécuter en arrière-plan et nous pouvons vérifier avec cette propriété, si elle est en arrière-plan
‫ou non, c'est une menace de pool de menaces.
‫C'est quelque chose que nous vérifierons plus tard.
‫Alors, qu'est-ce qu'un pool de menaces ?
‫C'est ce que nous verrons plus tard et ainsi de suite.
‫C'est donc Menaged menace ID est quelque chose d'assez intéressant, qui nous renseignera sur l'idée de la menace
‫que nous courons actuellement.
‫Alors utilisons ça.
‫Imprimons cela sur la console.
‫Donc CW et je vais utiliser le fil non comme ça.
‫Vous utilisez donc le signe dollar, puis vous avez le numéro de menace ou l'ID de menace afin que vous puissiez l'appeler.
‫Et puis, entre accolades, vous aviez l'habitude d'enfiler l'identifiant menagé ainsi.
‫Thread géré par thread, Edem, et bien sûr, vous devez fermer une chaîne.
‫Très bien, maintenant testons-le.
‫Exécutons le code.
‫Et nous avons notre principale menace, et jusqu'à présent, nous avons quelque chose sur la console, comme vous pouvez le voir, le numéro
‫de la menace est trois.
‫Donc, le nombre de cette menace que nous avons ici et que nous avons créé nous-mêmes est en fait de trois.
‫Et la principale menace de son identification gérée en est une.
‫Donc, comme vous pouvez le voir, les chiffres ne doivent pas nécessairement être tels que vous les attendriez.
‫Donc, même si nous n'avons pas créé notre propre menace supplémentaire ici, cela va de un à trois.
‫Il doit donc y avoir d'autres menaces qui courent que nous ne voyons pas ici.
‫D'accord.
‫Et au fait, si vous voulez voir si le fil a commencé et s'est terminé, vous pouvez procéder comme suit.
‫Alors, coupons ça ici et mettons-le dans cette ligne ici et en fait, disons commencé.
‫Et ici, nous ne pouvons pas utiliser de fil car le fil est ce fil que nous créons ici.
‫Mais si nous voulons l'utiliser ici dans le corps du thread lui-même et que nous devons utiliser le thread actuel du
‫point.
‫Donc, si nous le faisons maintenant, nous aurons le fil dans lequel nous sommes actuellement, qui est exactement cela.
‫Et ici, nous disons que cela a commencé et une fois que c'est fait, nous disons que c'est terminé et maintenant, lançons-le.
‫Pour exécuter le code et comme vous pouvez le voir, rien ne s'affiche sur la console.
‫Passons à l'étape suivante.
‫Et puis ça a commencé et ça s'est terminé, donc ça s'est passé assez vite, mais comme vous pouvez le voir, il y en a donc laissons un
‫peu plus de temps.
‫Changeons-le en cinq secondes.
‫Et débarrassons-nous également de ce point Dybbuk ici et lançons-le.
‫La menace numéro trois a donc commencé, puis cela a pris un certain temps et elle s'est terminée.
‫Alors maintenant, vous voyez que cette ligne de code est en fait exécutée correctement et qu'elle arrête simplement notre console.
‫Laissons donc la console lire une ligne pour la garder ouverte.
‫La menace numéro trois a donc commencé, puis cinq secondes plus tard, elle devrait se terminer pour que la menace numéro trois
‫soit terminée.
‫Maintenant, disons que nous voulons voir si la tâche a réellement fonctionné, donc si cela a fonctionné pour la définir sur true ou non
‫?
‫Eh bien, nous le savons parce que sinon nous ne passerions pas à l'étape suivante.
‫Mais utilisons la ligne droite de la console ici.
‫La tâche a été faite.
‫Et ici, écrivez simplement le résultat, qui sera testé.
‫Donc, le test est juste un taureau, comme vous pouvez le voir ici, car soit il a fonctionné, soit il n'a pas fonctionné, donc le résultat est
‫soit vrai, soit faux.
‫Alors vérifions-le.
‫Et maintenant, nous devons attendre cinq secondes.
‫Le numéro trois a commencé cinq secondes, puis le numéro trois s'est terminé et il est dit que la tâche a été effectuée est égal à
‫vrai.
‫C'est donc ce qui se passe ici avec cette ligne.
‫Donc, il dit simplement que c'est fait avec cette tâche spécifique.
‫Très bien, donc dans cette vidéo, vous avez vu comment vous pouvez utiliser la source d'achèvement de
‫tâche, qui indique si une tâche est terminée ou non, vous pouvez l'envoyer à Drew ou elle peut simplement faire quelque chose et
‫être terminée après un certain temps également afin que vous pouvez créer un thread d'une manière différente, vous pouvez donc
‫créer une variable de thread, que vous devez ensuite démarrer, bien sûr, et que vous pouvez simplement utiliser comme un objet du thread de
‫classe.
‫Et puis nous avons vu comment nous pouvons utiliser le fil I. RÉ. nous connaissons donc l'idée de cette menace spécifique.
‫Et c'est quelque chose que nous examinerons un peu plus dans la prochaine vidéo,
‫où nous créons plusieurs threads en même temps et nous verrons comment cela va être géré par notre machine.
‫Alors rendez-vous dans la prochaine vidéo.