Cinematic
Lt. Commander
- Registriert
- Dez. 2010
- Beiträge
- 1.296
Das Video ist mit der passenden Timestamp verlinkt, hier scrollt er einmal durch die ganze Klasse so dass alles zu sehen ist:
Und bei dieser Timestamp sieht man dann wie er das Programm ausführt ( 1:02:19 ):
In dem Tutorial geht's zwar um Threading, aber bei dieser Timestamp ist die Klasse erstmal noch ohne Threading. Er möchte halt hier erstmal den Nachteil aufzeigen, wenn man das Programm ohne Threading ausführt.
Die Funktion StartThreadedFunction() ist hier schon implementiert, wird aber noch nirgends aufgerufen.
Wer mit Unity nicht vertraut ist: die Start() Funktion wird einmalig zu Beginn vor dem ersten Frame aufgerufen. Die Update() Funktion wird nach jedem Frame einmal aufgerufen.
Ich hätte erwartet, dass man sofort "Start() started" sieht, dann 2 sek lang gar nichts passiert, da der einzig existierend Thread, also der Mainthread, wegen Thread.sleep(2000) pausiert.
Dann, sobald die 2000ms um sind, wird aFunction zur Queue hinzugefügt und mit der "Start() done" Konsolenausgabe fortgefahren, und quasi direkt danach kommt dann auch die Ausgabe "The results of the child thread [...]", was durch die Update() Funktion kommt, welche ja die Queue abarbeitet.
Warum passiert das aber so nicht?
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
Und bei dieser Timestamp sieht man dann wie er das Programm ausführt ( 1:02:19 ):
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
In dem Tutorial geht's zwar um Threading, aber bei dieser Timestamp ist die Klasse erstmal noch ohne Threading. Er möchte halt hier erstmal den Nachteil aufzeigen, wenn man das Programm ohne Threading ausführt.
Die Funktion StartThreadedFunction() ist hier schon implementiert, wird aber noch nirgends aufgerufen.
Wer mit Unity nicht vertraut ist: die Start() Funktion wird einmalig zu Beginn vor dem ersten Frame aufgerufen. Die Update() Funktion wird nach jedem Frame einmal aufgerufen.
Ich hätte erwartet, dass man sofort "Start() started" sieht, dann 2 sek lang gar nichts passiert, da der einzig existierend Thread, also der Mainthread, wegen Thread.sleep(2000) pausiert.
Dann, sobald die 2000ms um sind, wird aFunction zur Queue hinzugefügt und mit der "Start() done" Konsolenausgabe fortgefahren, und quasi direkt danach kommt dann auch die Ausgabe "The results of the child thread [...]", was durch die Update() Funktion kommt, welche ja die Queue abarbeitet.
Warum passiert das aber so nicht?