‫Willkommen zurück und dieses Video, wir werden uns Aufgaben und insbesondere die Arbeit mit dem UPF ansehen, also
‫erstellen wir ein neues Projekt und verwenden wir hier WP F und ich werde einen Doppelgänger nennen.
‫Sie haben Aufgaben.
‫Und in meinem Fall drücken wir OK, um dieses Projekt zu erstellen und das nach meinem UI-Wissen auf Knopfdruck.
‫Und ich werde das über die Toolbox tun.
‫Also wähle ich einfach eine Schaltfläche aus und ziehe sie in meine Benutzeroberfläche, damit wir sie etwas größer
‫machen.
‫Und ändern wir die Schriftgröße auf 32, vielleicht so ähnlich.
‫Jetzt ist es etwas einfacher zu lesen und ich werde ihm einen Namen geben.
‫Name ist gleich meinem Button, weil ich ihn später in meinem Code verwenden möchte.
‫Alles klar, das ist jetzt die Benutzeroberfläche.
‫Wir werden später einen kleinen Webbrowser hinzufügen, aber für den Moment wird die Schaltfläche in Ordnung sein.
‫Und in meinem Hauptfenster möchte ich diese Schaltfläche verwenden, muss jedoch auf Ereignis klicken.
‫Wenn also jemand auf diese Schaltfläche klickt, möchte ich etwas aus dem Web
‫herunterladen und wenn der Download abgeschlossen ist, möchte ich den TEMEL dem Schaltflächentext zum Schaltflächeninhalt zuweisen und benötige daher
‫ein Klickereignis.
‫Ich doppelklicke also auf die Schaltfläche und es wird hier ein neues My-Button-Klick-Ereignis erstellt.
‫Diese Methode wird also immer dann ausgelöst, wenn wir auf die Schaltfläche klicken.
‫Und der einfachste Weg, um zu sehen, ob das stimmt, besteht darin, einfach eine Nachrichtenbox zu verwenden und einfach etwas wie Hallo oder es hat
‫funktioniert oder so ähnlich zu sagen.
‫Lassen Sie uns es jetzt ausführen, um zu sehen, ob unser Code tatsächlich funktioniert, denn bevor wir etwas anderes tun, speichern wir einfach
‫die Schaltflächenfunktionen und es heißt hi.
‫Alles klar, das ist in Ordnung.
‫Wie Sie sehen, ist der Text selbst nicht wirklich so groß wie der Schaltflächentext.
‫Das ist nicht schön, aber darum geht es in diesem Video nicht, oder?
‫Es geht um Tests und darum, etwas im Hintergrund herunterzuladen, während die Benutzeroberfläche nicht hängen bleibt.
‫Gut.
‫Lassen Sie uns also einen Weg finden, es festzumachen.
‫Lassen Sie uns also weitermachen und etwas wie das Herunterladen versuchen.
‫Und um etwas herunterzuladen, verwende ich einfach einen HTTP-Client und rufe einen Web-Client auf.
‫Nun ist der BTP-Client eine Klasse, die wir dem System hinzufügen müssen.
‫Und ich dachte HTP, das brauchen wir hier.
‫Also dieser Webclient wird jetzt ein neuer GTP-Client sein.
‫Und jetzt möchte ich einen String haben, der der HTML-Code sein wird, der
‫Webclient-Punkt sein wird, ein asynchroner String erhalten und welcher String gut werden soll, sollte die https-Spalte erhalten Schrägstrich
‫Schrägstrich Google Punkt com und ich möchte das Ergebnis haben.
‫Also lade die Website herunter und gib mir das Ergebnis und das in HTML gespeichert.
‫Das wird dieses Ding also tun.
‫Rechts.
‫Und was ich sehen werde, ist der Thread, in dem ich bin.
‫Also möchte ich den Thread sehen, an dem ich arbeite.
‫Die rechte Zeile wird die Thread-Nummer und der Thread-Punkt sein, und um den Thread zu verwenden, müssen wir dies tun.
‫Verwenden Sie systemsynchronisiertes Threading, und um Deba verwenden zu können, müssen wir die Systemstandarddiagnose verwenden.
‫Lassen Sie uns diese beiden Dinge tun und jetzt können wir fortfahren und den aktuellen Thread und die MENAGED-Thread-ID abrufen.
‫Also ich möchte nur wissen, was ich als Thread habe, den ich gerade betreibe.
‫Wenn ich also auf die Schaltfläche klicke, wird dieser Debug gedruckt und etwas heruntergeladen.
‫Nehmen wir nun an, ich möchte den Inhalt der Schaltfläche ändern, damit meine Schaltfläche diesen Inhalt verwendet, um so etwas wie fertig zu
‫verwenden.
‫Lassen Sie uns das also testen.
‫Da sind wir.
‫Sobald ich auf die Schaltfläche klicke, kannst du sehen, dass es jetzt fertig ist.
‫Heruntergeladen und fertig.
‫Und das passiert, weil dieser hier, also das Herunterladen des Google-Kontos eigentlich ziemlich schnell funktioniert, und deshalb ist es
‫sogar möglich, den Inhalt von Ekwall zu tun, aber normalerweise sollte das nicht möglich sein oder in den meisten Fällen nicht möglich
‫sein , da diese Aufgabe hier in der Regel eine ganze Weile dauert.
‫Und wir haben hier einen Thread, der ziemlich, ja, ziemlich umfangreich ist, weil das Herunterladen von Sachen normalerweise eine Weile dauert.
‫Und abgesehen davon, dass wir in diesem Fall nur sehr, sehr wenig herunterladen, laden
‫wir nur eine Google Dotcom-Website herunter, die sehr, sehr kurz ist.
‫Es sind nur ein paar Kilobyte.
‫Stattdessen werde ich keine 5-Megabyte-Datei herunterladen.
‫Es dauert also noch etwas, bis das alles erledigt ist.
‫Schauen wir uns das also noch einmal an.
‫Ich werde den Knopf drücken und jetzt sehen Sie, dass es einfriert.
‫Und erst als es fertig war, änderte es sich in Dunn.
‫Vielleicht ist die 25-Megabyte-Datei zu klein.
‫Lassen Sie uns die 200-Megabyte-Datei erstellen und tatsächlich überprüfen, ob eine auf der Website vorhanden ist und eine vorhanden ist.
‫Alles klar, versuchen wir es noch einmal.
‫Jetzt wird die Datei viel größer und es dauert eine Weile, bis sie fertig ist.
‫Also drücke ich auf den Knopf.
‫Und wie Sie jetzt sehen können, friert es ein, es ist eingefroren und es hat nichts, bis die Downloads abgeschlossen
‫sind.
‫Und das liegt daran, dass wir beim dritten sind.
‫Der gesamte Bildschirm wird also eingefroren, bis der Download abgeschlossen ist.
‫Und das ist etwas sehr Gefährliches.
‫Das solltest du nicht tun.
‫Sie sollten immer vorsichtig sein, wenn Sie Dinge tun, die sich stark auf die Hauptbedrohung oder den UI-Thread beziehen,
‫da die Hauptbedrohung oder die UI-Bedrohung wirklich hier ist.
‫Beschäftigt mit der Aktualisierung der Benutzeroberfläche, ebenso wie das gesamte UI-Zeug und.
‫Nun, jetzt ist meine Datei in meinem Programm ziemlich eingefroren.
‫Also werde ich einfach die Hundert-Megabyte-Datei verwenden.
‫Vielleicht ist das die bessere Wahl und das, was wir getan haben, und wir werden immer noch den Unterschied sehen.
‫Rechts.
‫Daher habe ich hier nur einen Link verwendet, über den Sie einfach zufällige Dateien herunterladen können.
‫Also lass es uns noch einmal drücken.
‫Wie Sie jetzt sehen können, ist es eingefroren und es wird eine Weile dauern, bis es fertig ist.
‫Und da bist du.
‫Es ist fertig.
‫Also hat es die Datei heruntergeladen und es ist OK gemacht.
‫Und würden Sie auch sehen, dass wir mit Bedrohung Nummer eins unterwegs sind, also ist das die Hauptgefahr, richtig?
‫Und wir arbeiten mit der Hauptbedrohung und versuchen, etwas herunterzuladen und wir versuchen, die Benutzeroberfläche
‫zu aktualisieren und.
‫Nun, deshalb dauert es hier ein bisschen.
‫Nun könnten Sie sagen, in Ordnung, erstellen wir eine Aufgabe dafür.
‫Lassen Sie uns also eine Aufgabe erstellen, die ausgeführt wird, und wir werden hier etwas Code ausführen.
‫Also kopiere ich den Code einfach so hinein.
‫Und jetzt debuggen wir das.
‫Lassen Sie uns hier einen kleinen Debug-Punkt hinzufügen.
‫Lassen Sie uns das also debuggen, nur um zu sehen, welche Threads tatsächlich beteiligt sind.
‫Also werde ich den Knopf drücken und wir sind in diesem Thread.
‫Und dass wir so sind, haben wir mehrere Arbeiter-Threads, in denen die Hauptbedrohung ist, und zwar die Bedrohung, und wir
‫haben das früher gesehen, als wir etwas ausgeführt haben.
‫Also, wenn die Hauptbedrohung und dann haben wir unsere Aufgabe ausgeführt, die auch eine Bedrohung hat, und wir sind in Bedrohung
‫fünf.
‫Sie können also sehen, dass Bedrohung fünf eine Arbeiterbedrohung ist, und das ist die, die wir hier haben.
‫Kommen wir also zum nächsten Schritt.
‫Wir sind noch bei der Hinrichtung oder immer noch eine Drohung, fünf, dann machen wir es noch einmal, immer noch eine Drohung fünf.
‫Jetzt versuchen wir, etwas zu tun.
‫Also versuchen wir, meinen Button zu aktualisieren.
‫Fertig.
‫Und gehen wir noch einmal zum nächsten Schritt, wie Sie sehen können, friert meine Anwendung ihren Auswertungsausdruck, meine Schaltfläche,
‫ein.
‫Also warten wir wieder.
‫Also ziemlich schwer dafür und wie Sie sehen können, dass wir uns in dieser Operation befinden, kann die Ausnahme zum aufrufenden
‫Thread nicht auf das Objekt zugreifen, da es einem anderen Thread gehört.
‫Was bedeutet das?
‫Nun, es bedeutet, dass mein Button einem anderen Thread gehört.
‫Und von welchem Thread?
‫Nun, es gehört dem UI-Thread, unserem Hauptthread.
‫Der Hauptthread ist also dafür verantwortlich, sich um alle UI-Elemente zu kümmern, damit sie nicht einfrieren.
‫Es ist wichtig, dass Sie immer antworten, und in diesem Fall reagiert es nicht mehr,
‫weil wir versuchen, auf diese Codezeile zuzugreifen, obwohl sie nicht im richtigen Thread ist.
‫Wir befinden uns also in Thread fünf und versuchen, auf etwas zuzugreifen, das zu Thread eins gehört und
‫das ungültig ist.
‫Wir erhalten hier diese ungültige Operationsausnahme und müssen eine andere Lösung finden, um dies zu verwalten.
‫Und es ist im Allgemeinen ein Konzept verschiedener Bedrohungen.
‫Generell ist also Vorsicht geboten, wenn Sie mit unterschiedlichen Threads und mit unterschiedlichen Objekten arbeiten.
‫Wenn die Objekte anderen Threads gehören, können Sie sie nicht ändern oder modifizieren.
‫Das muss man sich also bewusst sein.
‫Wie können wir das tun?
‫Nun, im Allgemeinen, lassen Sie uns zuerst das Hoch stoppen und gehen wir daher in die Schaltfläche und erstellen Sie hier eine
‫Schaltfläche.
‫Und ich möchte die Taste ausprobieren, indem Sie die Steuerung drücken oder die Steuerung halten und auf die Taste drücken.
‫Button erbt also von button base, einem konstanten Steuerelement, das vom Steuerelement, vom
‫Framework-Element und vom UI-Element erbt.
‫Das ist ein visuelles Objekt, das ist ein Abhängigkeitsobjekt, ein Despatcher-Objekt, das wir sind, also ist es ein Dispatcher-Objekt,
‫und hier überprüft es nur den Zugriff und den sehr lebhaften Zugriff.
‫Dies ist also ein Dispatcher-Objekt, und wir verwenden hier einen Dispatcher, und der Dispatcher hat viele Variablen, Ereignisse und
‫so weiter.
‫Warum zeige ich dir das?
‫Nun, es liegt daran, dass wir den Dispatcher verwenden werden, um unseren Thread für sie zu verwalten.
‫Mein Knopf.
‫Also, was soll ich hier tun?
‫Nun, ich brauche meinen Button-Dot-Dispatcher, damit die Fenster bedrohlich werden.
‫Dispatcher Die Systemfenster hören auf, zu bedrohen, mit dem das Dispatcher-Objekt verknüpft ist.
‫Jetzt erfahren wir also, welcher Thread zu unserem Button gehört bzw. welcher zu welchem Fred.
‫Unser Knopf gehört dazu.
‫Lassen Sie uns also den Dispatcher überprüfen, und hier rufe ich auf, führt die angegebene Aktion asynchron auf
‫dem Thread aus, dem Systemfenster-Thread, dem dieser Dispatcher zugeordnet ist.
‫Das ist genau das, worüber ich gesprochen habe, was wir tun müssen.
‫Also lass uns das machen und den Code jetzt hier ausführen.
‫Also schließe ich es dort unten.
‫Und jetzt können Sie jetzt sagen, OK, mein Button-Inhalt sagt nur fertig und ich werde den
‫Debug noch einmal verwenden, um zu sehen, in welcher Bedrohung ich mich gerade befinde.
‫Lassen Sie uns den Code also erneut ausführen.
‫Jetzt drücken wir den Knopf.
‫Und wie Sie sehen, sind wir jetzt hier.
‫Und ich musste noch einmal viel auswerten, damit wir jetzt in Thread fünf sind.
‫Hier machen wir das Debugging.
‫Dann gehen wir zum nächsten Thread oder zur nächsten Zeile.
‫Nächste Zeile.
‫Und dann ist die Benutzeroberfläche wieder auf Kurs.
‫Wo hier drin.
‫Und jetzt können wir zum nächsten Schritt gehen.
‫Wir sind also im Dispatcher und er überspringt tatsächlich das, was ich Ihnen zeigen wollte.
‫Schauen wir es uns also an, gehen Sie zu Windows und sehen wir uns die Debug-Konsole an, die die Ausgabe ist, so dass
‫wir Bedrohung Nummer fünf sagen.
‫Und dann hieß es Bedrohung Nummer eins.
‫Das ist also Bedrohung Nummer eins und das ist Bedrohung Nummer fünf.
‫Der Besitzer des Buttons ist also, wie Sie sehen können, Bedrohung Nummer eins.
‫Und um das etwas klarer zu machen, könnten wir das hier in unsere Zeile aufnehmen.
‫Bedrohung Nummer eins oder Bedrohungsnummer so-und-so besitzt meinen Button.
‫Jetzt werden wir etwas klarer.
‫Lassen Sie es uns noch einmal ausführen und dann sollte es richtig angezeigt werden.
‫Hier ist also die Ausgabe und es gibt noch nichts Interessantes.
‫Wir drücken den Knopf und Sie sehen, dass Bedrohung Nummer fünf ausgeführt wurde und dann beginnt der Download.
‫Und erstens, es ist nicht einmal getan, heißt es hier: Drohung.
‫Niemand besitzt meinen Knopf.
‫Also lasst uns noch einmal drücken.
‫Und jetzt, wie Sie sehen können, funktioniert die Schaltfläche immer noch und wird immer noch aktualisiert.
‫Das ist also gut.
‫Und das ist eine Möglichkeit.
‫Es gibt jedoch einen anderen Weg, und ich werde Ihnen einen anderen zeigen, der eine bevorzugte Lösung ist.
‫Also werde ich das kopieren.
‫Mein Button-Klick.
‫Ich werde es meinen Knopfklick nennen, nur damit es nicht stört.
‫Und jetzt werde ich sagen, bei welcher Bedrohung ich draußen stehe.
‫Also, welche Bedrohung bin ich, wenn ich auf die Schaltfläche klicke?
‫Nun, dann sollte ich in Rot sein.
‫Ich werde eine Gewichtsaufgabe verwenden.
‫Diese Aufgabe ausführen, sollte eine asynchrone Aufgabe sein.
‫Daher müssen wir hier ein asynchrones Schlüsselwort hinzufügen.
‫Ein visuelles Studio ist immer noch nicht sehr glücklich.
‫Also muss ich diese Methode asynchron machen.
‫Mein Button-Klick ist jetzt also eine asynchrone Button-Methode, die darauf wartet, dass eine bestimmte Aufgabe asynchron
‫ausgeführt wird.
‫Und was ich hier mache, ist, diese Datei einfach erneut herunterzuladen.
‫Und anstatt einen Dispatcher zu verwenden, kann ich jetzt meine Schaltfläche außerhalb dieser Aufgabe
‫aktualisieren.
‫Also werde ich es hier draußen machen.
‫Ich werde meinen Button-Dot-Inhalt sagen und es wird etwas sagen, das ich heruntergeladen habe.
‫Das ist es.
‫Anstatt dies mit einem Dispatcher zu tun, was ein wenig Arbeit war, mache ich es jetzt asynchron.
‫Also sollte es jetzt auch gut gehen.
‫Um das zu testen, werde ich die Methode hier ändern, um Methode zu klicken, um auf Schaltfläche zu klicken.
‫Andernfalls würde diese Methode nie ausgeführt.
‫Also machen wir das.
‫Und vielleicht kommt das auch noch hinzu, in welchem Thread wir sind.
‫Also kein Thread so ungelöst vor einer wartenden Aufgabe.
‫Und dann ist dieser nach einer Gewichtsaufgabe und dieser wird während einer Gewichtsaufgabe sein.
‫Also lassen Sie es uns jetzt noch einmal ausführen.
‫Drücken wir unseren Knopf.
‫Und hier sieht man vor TASC.
‫Während einer Gewichtsaufgabe war niemand da, der Thread Nummer zwei war und nach der Gewichtsaufgabe ist er wieder auf Nummer eins
‫und wir sind mit dem Herunterladen fertig.
‫Das ist also ein anderer Ansatz, der auch perfekt funktioniert.
‫Und das ist sogar ein besserer Weg.
‫Sie müssen also nicht den Weg der Überprüfung gehen, der meinen eigenen bedroht hat.
‫Aber Sie erstellen einen anderen Thread, in dem Sie Dinge tun.
‫Aber und Sie machen es auch zu einem Gewicht.
‫Sie machen es also asynchron.
‫Nun möchte ich Ihnen auch einen Webbrowser zeigen, also werde ich hier die
‫Größe der Schaltfläche reduzieren.
‫Ich werde es hier in der oberen linken Ecke platzieren und einen Webbrowser verwenden.
‫Ich ziehe es einfach hinein und mache es etwas größer.
‫Jetzt haben wir also nur diesen Webbrowser und er sollte uns die Seite anzeigen, auf der wir uns befinden.
‫Was also passiert, ist, dass ich jedes Mal, wenn ich den Button drücke, eine bestimmte Website herunterlade,
‫die ich manuell definiere.
‫Dies ist also nur ein kleines Beispiel, um das, was wir bisher gesehen haben, hinzuzufügen.
‫Ich werde nicht in einen vollständigen Webbrowser einsteigen.
‫Ich werde Ihnen nicht zeigen, wie das geht.
‫Sie können weitermachen und es selbst versuchen.
‫Ich werde Ihnen nur zeigen, wie Sie jetzt den HTML-Code verwenden können, den
‫Sie von diesem speziellen Link heruntergeladen haben, der fest codiert und einfach zu verwenden ist, oder ihn in einem Webbrowser anzeigen können.
‫Also https Google Dot.com.
‫Was also passiert ist, wenn ich die Taste drücke, wird Google dot com heruntergeladen.
‫Um das zu tun, benötige ich eine bestimmte Methode und ich werde sie nicht manuell eingeben.
‫Ich kopiere es einfach und füge es hier ein.
‫Daher wird diese Methode zur HTML-Änderung immer dann aufgerufen, wenn eine Abhängigkeitseigenschaft geändert wird.
‫Was ich hier sagen möchte, ist, dass HTML-Änderungen ein Abhängigkeitsobjekt und ein Ereignisargument für die Änderung der Abhängigkeitseigenschaft
‫benötigen, das hier als E bezeichnet wird.
‫Ich erstelle gerade einen Webbrowser, der dieses Abhängigkeitsobjekt nimmt und als Webbrowser verwendet.
‫Und wenn der Webbrowser nicht null ist, navigieren Sie zu einer bestimmten Zeichenfolge, bei der es sich um einen neuen Wert als
‫Zeichenfolge handelt.
‫Was auch immer diese Abhängigkeitsargumente sind, Eigenschaften geändert, Ereignisargumente.
‫Von dort bekomme ich die Saite.
‫Das ist also ziemlich genau das, was im Webbrowser angezeigt werden muss.
‫Also ich hätte es einfacher gemacht.
‫Aber das Problem ist, dass das nicht so einfach ist.
‫Es gibt also keine einfacheren Wege oder viele einfachere Wege, dies zu tun.
‫Dies ist im Allgemeinen der Ansatz, den Sie hier ausführen müssen.
‫Anstatt also nur die Schaltfläche mit Dan-Download zu aktualisieren, möchte ich den Webbrowser aktualisieren und deshalb braucht der
‫Webbrowser einen Namen.
‫Also gebe ich dem Webbrowser einen Namen und nenne ihn meinen Webbrowser.
‫Nun den Webbrowser, ich nenne ihn hier oder hier tatsächlich modifiziert.
‫Was ich tun möchte, ist, dass ich den Wert dieses Browsers festlegen möchte, und ich möchte ihn mit etwas festlegen.
‫Und Sie können sehen, dass wir die Abhängigkeitseigenschaft und ein Objekt mit Wert benötigen.
‫Also wie bekomme ich das hin?
‫Woher bekomme ich das?
‫Nun, hier gibt es mehrere, mehrere Dinge.
‫Eine davon ist, dass wir eine Abhängigkeitseigenschaft benötigen, also erstellen wir eine.
‫Stellen wir es hier ganz oben.
‫Und wieder kopiere ich es einfach und füge es ein.
‫Ich zeige Ihnen, wie es aussieht und was es bewirkt.
‫Es handelt sich also um eine schreibgeschützte Abhängigkeitseigenschaft namens HTML-Eigenschaft.
‫Und wir melden uns an.
‫Es wird mit HTML registriert.
‫Wie Sie sehen, benötigt es einen Namen, eine Zeichenfolge, einen Namen, HTML, dann einen Eigenschaftstyp, einen Eigentümertyp und
‫Eigenschaftsmetadaten.
‫Das haben wir bei der Arbeit mit Abhängigkeitseigenschaften im UPF-Kapitel angesprochen.
‫Also hier habe ich einfach mit HTML erstellt.
‫Der Typ ist ein String.
‫Was ist der Besitzer.
‫Es ist das Hauptfenster.
‫Also unsere Klasse hier.
‫Und was für Daten sind das oder welche Metadaten möchte ich ihm geben und ich gebe ihm die auf
‫html geänderten Metadaten.
‫Was bedeutet das.
‫Immer wenn wir die Eigenschaft auf HTML setzen, wird change aufgerufen und das ist diese Methode hier, die aufgerufen
‫wird.
‫Was wir jetzt tun können, ist, den Wert meines Browsers wie folgt festzulegen.
‫Wir können weitermachen und HTML-Eigenschaft sagen und sie mit HTML festlegen, um HTML zu verwenden.
‫Wir müssen hier einen kleinen Workaround machen oder einen kleinen Workaround haben.
‫Eigentlich werde ich es so mein HTML nennen und ich muss hier eine Variable erstellen,
‫die eine Zeichenfolge mein T und L sein wird, die nur bla sagen wird, nur eine Zeichenfolge mit dummem Text in Hier.
‫Nichts Besonderes.
‫Aber sobald der Download abgeschlossen ist, erhalten wir das Ergebnis in unseren HTML-String.
‫Ich könnte hier nicht einfach HTML sagen, weil dieser String lokal erstellt wird und ich ihn nicht erstellen
‫kann oder er im Rahmen unserer Aufgabe hier liegt und ich ihn nicht außerhalb erstellen kann.
‫Deshalb brauche ich diese kleine Problemumgehung, damit ich sagen kann, dass mein HTML HTML ist.
‫Also das.
‫Variable hier, das ist im Rahmen unseres my Webbrowsers, sagten wir hier, deshalb kann ich jetzt loslegen und
‫es hier einstellen.
‫Also im Rahmen unserer Erwartungsaufgabe.
‫Jetzt müssen wir diese Zeile natürlich beenden.
‫Auf diese Weise können Sie den Wert eines Webbrowsers festlegen.
‫In Ordnung, es ist ein wenig Arbeit, aber es funktioniert, also testen wir es, lassen Sie uns unseren Code ausführen.
‫Lass uns den Knopf drücken.
‫Und wir haben viele Skriptfehler, aber das liegt daran, dass wir nichts anderes gesagt haben.
‫Aber wie Sie hier sehen können, sind wir jetzt bei Google, also können wir zu Bildern, zu Google Maps und so weiter gehen.
‫Jetzt haben wir also unseren kleinen Browser erstellt, der uns einfach zu Google führt.
‫Alles klar, cool.
‫Also, wie gesagt, ich werde nicht zu tief in Browser und so eintauchen, und ich wollte nicht einmal zu tief
‫in diese Themen einsteigen.
‫Aber das ist nur die Art und Weise, wie Sie es einrichten müssen.
‫Das ist ein bisschen, äh, ja.
‫Eine kleine Einrichtung, die Sie tun müssen.
‫Sie müssen diese Methode also haben.
‫Sie benötigen diese Abhängigkeitseigenschaft, und dann können Sie den Wert Ihres Browsers
‫mit der HTML-Eigenschaft festlegen, die unsere Abhängigkeitseigenschaft ist, und etwas HTML-Code, der der Originalcode ist, den wir
‫von Google dot com herunterladen.
‫Oder ich fasse noch mal kurz zusammen, was ist die Idee, verschiedene Threads zu verwenden?
‫Nun, Sie haben die Hauptbedrohung, die die Benutzeroberfläche handhabt,
‫und wenn Sie etwas Schweres tun möchten, das eine Weile dauert, z
‫Festplatten oder was auch immer, das macht im Hintergrund wirklich
‫Sinn.
‫Sie erstellen also eine andere Aufgabe oder einen anderen Thread, der sich darum kümmert.
‫Hier haben wir also eine asynchrone Aufgabe erstellt, die dies im Hintergrund tut.
‫Und wenn das erledigt ist, können wir mit dem Rest fortfahren.
‫Es wird also unseren Hauptthread nicht einfrieren.
‫Unsere Benutzeroberfläche wird immer noch ordnungsgemäß funktionieren, und darum geht es.
‫Gut.
‫Wir sehen uns also im.