‫Willkommen zurück und das letzte Wort.
‫Sie haben gesehen, wie Sie Bedrohungen einsetzen und Bedrohungen einrichten und einfach starten können.
‫Und in diesem Video schauen wir uns die Fertigstellung an.
‫Also wollen wir einen Thread verwenden, um etwas zu tun.
‫Und nur wenn eine bestimmte Aufgabe erledigt ist, dann wollen wir weitermachen.
‫Schauen wir uns das also an.
‫Ich werde eine neue Variable namens Task Completion Source erstellen und benötige daher eine neue Task, eine Completion Source
‫und einen booleschen Wert.
‫Wie Sie sehen, beschwert es sich, weil es nicht weiß, was diese Aufgabenerledigungsquelle ist.
‫Und um es zu beheben, muss ich System-Threading-Aufgaben verwenden.
‫Also mache ich das für eine Sekunde und höre dann, was ich als nächstes tun werde, ist nur eine Testvariable
‫zu erstellen.
‫Ich rufe einfach eine Aufgabe auf, die eine Aufgabenerledigungsquelle ist, oder wir nennen diese Aufgabenerledigungsquelle
‫einfach.
‫Und wir sagten, es ist Aufgabe der Ergebnisse.
‫Wir wollen also das Ergebnis dieser Aufgabe haben.
‫Nehmen wir also an, es gab eine bestimmte Aufgabe, die ausgeführt werden und etwas tun sollte, und dann möchten wir die Ergebnisse
‫sehen.
‫Wenn es also geklappt hat oder nicht geklappt hat und um das zu testen, werde ich diese rote Linie hier entfernen.
‫Ich führe den Code also einfach so aus, als ob es in dieser Hauptmethode nichts anderes gäbe, nur diesen Code hier.
‫Also werde ich es laufen lassen.
‫Und wie Sie sehen, passiert nichts.
‫Die Konsole wird also am Leben gehalten oder geöffnet, obwohl wir diese rote Konsolenlinie nicht haben,
‫die wir normalerweise immer verwenden, wenn wir die Konsole offen halten wollen, bedeutet das, dass etwas nicht fertig ist.
‫Das hier ist also nie wirklich fertig, weil es keine Ergebnisse gibt.
‫Diese Vervollständigungsquelle ist also nie wirklich vollständig.
‫Es wird also nie auf "true" gesetzt.
‫Und das können wir manuell tun.
‫Nehmen wir also an, wir haben eine Aufgabe und wir wollen das Ergebnis so haben, wie wir es hier haben, aber wir wollen die Aufgabe
‫eigentlich an einem Punkt beenden.
‫Dazu müssen wir also einen Thread erstellen.
‫Ich werde also einen größeren
‫Thread erstellen, der gleich einem neuen Thread ist, und dieser Thread wird nicht sofort gestartet.
‫Ich verwende also einen etwas anderen Ansatz als wir hier.
‫Also haben wir hier nur neuen Thread gesagt und dann hatten wir den Hauptteil des Threads.
‫Also den Code, der ausgeführt werden soll, wenn dieser Thread gestartet wird und wir sofort gestartet haben, haben
‫wir sofort angefangen.
‫Aber hier erstellen wir nur den Thread und können später etwas damit anfangen.
‫Also hier sage ich nur Thread-Schlaf.
‫Schlafen Sie also einfach für, sagen wir, 1000 Millisekunden und versuchen Sie anschließend, diese Aufgabenerledigungsquelle auf
‫"true" zu setzen.
‫Versuchen Sie also, set result zu versuchen, die zugrunde liegende Aufgabe in die Aufgaben zu überführen, die in den Abschlussstatus ausgeführt
‫werden, was bedeutet, dass sie erledigt ist.
‫Rechts.
‫Also wird es versuchen zu sagen, dass es wahr ist.
‫Das bedeutet, dass diese Aufgabenerledigungsquelle auf "true" gesetzt wird und wir erst dann so weit kommen, was
‫das Ergebnis dieser Aufgabe ist.
‫Lassen Sie uns hier einen kleinen Schritt erstellen, also Dybbuk Step und die Überprüfung, die Bedrohungs-IDs, und jetzt müssen wir, um eine
‫Bedrohung zu starten, tatsächlich den Thread starten, der gestartet wird.
‫Und wie Sie sehen, wird dieses Thread-Objekt hier, das ein Thread ist, der all das erledigt, gestartet
‫werden.
‫Also werde ich so einen Thread eröffnen.
‫Und wenn wir schon dabei sind, schauen wir uns an, was Thread zu bieten hat.
‫Wenn Sie also ein Thread-Objekt erstellen, müssen Sie mehrere Eigenschaften und Methoden verwenden, oder wir können hier
‫mehrere verwenden.
‫Sie können also sehen, dass ein Board ein Board ist, in dem Sie den Thread abbrechen können, damit Sie den Thread stoppen können, aber das
‫wird eine Ausnahme ausführen oder eine Ausnahme verursachen.
‫Das ist also tatsächlich sehr gefährlich.
‫Sie können Ihre Anwendung damit abstürzen lassen, je nachdem, wie sicher wir sind, erstellen Sie sie.
‫Aber ein Board ist etwas, mit dem Sie natürlich einen Thread stoppen können, aber Sie wissen nie, wie weit es ist und
‫wie es ausgeführt wird.
‫Es kann also vorkommen, dass es bei den Aufgaben, die Sie erledigen wollten, nicht gut abschneidet.
‫Und das kostet, na ja, Ihr Problem funktioniert nicht richtig.
‫Und dann gibt es natürlich noch viele andere Methoden, die ziemlich interessant sind, wie zum Beispiel Worteigenschaften wie diese lebendig
‫sind, was bedeutet, dass diese Bedrohung aktuell lebendig ist als sein Hintergrund, was bedeutet, dass wir sagen können,
‫dass ein Thread im Hintergrund laufen sollte und Wir können mit dieser Eigenschaft überprüfen, ob es sich
‫im Hintergrund um eine Bedrohungspool-Bedrohung handelt oder nicht.
‫Das ist etwas, das wir später überprüfen werden.
‫Was ist also ein Bedrohungspool?
‫Das werden wir später sehen und so weiter.
‫Das ist also etwas sehr Interessantes an der Menaged Threat ID, die uns etwas über die Idee der Bedrohung erzählen
‫wird, die wir derzeit ausführen.
‫Nutzen wir das also.
‫Lassen Sie uns das auf die Konsole drucken.
‫Also werden CW und ich den Thread Nr. so verwenden.
‫Sie verwenden also das Dollarzeichen und haben dann die Bedrohungsnummer oder Bedrohungs-ID, damit Sie sie anrufen können.
‫Und dann in geschweiften Klammern haben Sie die menaged id so eingefädelt.
‫Thread verwalteter Thread, Edem und natürlich müssen Sie einen String schließen.
‫Alles klar, jetzt testen wir es.
‫Lassen Sie uns Code ausführen.
‫Und wir haben unsere Hauptbedrohung, und bisher haben wir etwas auf der Konsole, wie Sie sehen
‫können, Bedrohungsnummer ist drei.
‫Die Zahl dieser Bedrohungen, die wir hier haben und die wir selbst geschaffen haben, ist also tatsächlich drei.
‫Und die Hauptbedrohung ist die verwaltete ID.
‫Wie Sie sehen, müssen die Zahlen nicht unbedingt so sein, wie Sie es erwarten würden.
‫Auch wenn wir hier keine eigene zusätzliche Bedrohung geschaffen haben, geht es von eins bis drei.
‫Es muss also andere Bedrohungen geben, die wir hier nicht sehen.
‫Gut.
‫Und übrigens, wenn Sie sehen möchten, ob der Thread gestartet und beendet wurde, können Sie Folgendes tun.
‫Also lasst uns das hier schneiden und in diese Zeile hier einfügen und tatsächlich, sagen wir, angefangen.
‫Und hier können wir Thread nicht verwenden, da Thread dieser Thread ist, den wir hier erstellen.
‫Aber wenn wir es hier im Threadkörper selbst verwenden möchten und wir den aktuellen Thread mit Threadpunkt verwenden
‫müssen.
‫Wenn wir das jetzt tun, haben wir den Thread, in dem wir uns gerade befinden, und genau das ist es.
‫Und hier sagen wir, es hat angefangen und nachdem es fertig ist, sagen wir, es ist zu Ende und jetzt lassen wir es laufen.
‫Um den Code auszuführen und wie Sie sehen können, wird auf der Konsole nichts angezeigt.
‫Gehen wir zum nächsten Schritt.
‫Und dann fing es an und endete, ging also recht schnell, aber wie man sieht, gibt es da noch
‫etwas mehr Zeit.
‫Ändern wir es auf fünf Sekunden.
‫Und lasst uns auch diesen Dybbuk-Punkt hier loswerden und ihn laufen lassen.
‫Also begann Bedrohung Nummer drei und dann dauerte es eine Weile und es ging zu Ende.
‫Jetzt sehen Sie also, dass diese Codezeile tatsächlich korrekt ausgeführt wird und unsere Konsole einfach anhält.
‫Lassen Sie uns also die Konsole eine Zeile lesen, um die Konsole geöffnet zu halten.
‫Also Bedrohung Nummer drei gestartet und dann fünf Sekunden später sollte sie enden, damit wir Bedrohung Nummer drei
‫beendet haben.
‫Nehmen wir nun an, wir möchten sehen, ob die Aufgabe tatsächlich funktioniert hat, also ob es geklappt hat, sie auf "true" zu setzen oder
‫nicht?
‫Nun, wir wissen es, weil wir sonst nicht zum nächsten Schritt kommen würden.
‫Aber lassen Sie uns hier die rechte Zeile der Konsole verwenden.
‫Aufgabe wurde erledigt.
‫Und hier schreiben Sie einfach das Ergebnis, das getestet wird.
‫Der Test ist also nur ein Bulle, wie Sie hier sehen können, denn entweder hat er funktioniert oder nicht funktioniert, also ist das Ergebnis
‫entweder wahr oder falsch.
‫Schauen wir es uns also an.
‫Und jetzt müssen wir fünf Sekunden warten.
‫Nummer drei begann fünf Sekunden und dann endete Nummer drei und es heißt, dass die Aufgabe erledigt wurde, ist gleich
‫wahr.
‫Das ist, was hier mit dieser Linie passiert.
‫Es heißt also einfach, dass es mit dieser speziellen Aufgabe erledigt ist.
‫Alles klar, in diesem Video haben Sie also gesehen, wie Sie die Aufgabenerledigungsquelle verwenden können,
‫die anzeigt, ob eine Aufgabe erledigt ist oder nicht, Sie können sie an Drew senden oder sie können einfach etwas
‫tun und nach einer Weile auch damit erledigt werden Sie können einen Thread auch auf andere Weise erstellen,
‫also tatsächlich eine Thread-Variable erstellen, die Sie dann natürlich starten müssen, und die Sie einfach wie ein Objekt der Klasse Thread verwenden
‫können.
‫Und dann haben wir gesehen, wie wir den Thread I verwenden können. D. Wir kennen also die Idee dieser spezifischen Bedrohung.
‫Und das ist etwas, auf das wir im nächsten Video etwas mehr
‫eingehen werden, in dem wir mehrere Threads gleichzeitig erstellen und sehen, wie unsere Maschine damit umgehen wird.
‫Wir sehen uns also im nächsten Video.