task

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Die Aufgabenbibliothek ermöglicht das Planen von Funktionen und Threads mit dem Aufgabenplanerder Engine.

Die in dieser Bibliothek verfügbaren Funktionen unterstützen im Allgemeinen Funktionen und Threads.In den meisten Fällen reicht die Verwendung einer Funktion aus, aber für fortgeschrittene Fälle wird empfohlen, sich mit der coroutine Bibliothek vertraut zu machen.

Zusammenfassung

Funktionen

  • spawn(functionOrThread : function | coroutine,... : Variant):coroutine

    Ruft/unterbricht eine Funktion/Koroutine sofort durch den Aufgabenplanerder Engine.

  • defer(functionOrThread : function | coroutine,... : Variant):coroutine

    Ruft/unterbricht eine Funktion/Koroutine am Ende des aktuellen Wiederaufnahmezyklus.

  • delay(duration : number,functionOrThread : function | coroutine,... : Variant):coroutine

    Plant eine Funktion/Koroutine ein, die beim nächsten Herzschlag nach der angegebenen Dauer (in Sekunden) aufgerufen/fortgesetzt wird, ohne Beschränkung.

  • Verursacht, dass der folgende Code parallel ausgeführt wird.

  • Verursacht, dass der folgende Code in Serie ausgeführt wird.

  • wait(duration : number):number

    Liefert den aktuellen Thread ohne Beschränkung.

  • cancel(thread : coroutine):()

    Storniert einen Thread, verhindert, dass er wieder aufgenommen wird.

Funktionen

Akzeptiert eine Funktion oder einen Thread (wie von coroutine.create() zurückgegeben) und ruft ihn sofort durch den Aufgabenplanerder Engine auf.Argumente nach dem ersten werden an die Funktion/Thread gesendet.

Wenn das zu rufende Skript derzeit in einer seriellen Ausführungsphase läuft, wird die gespawnten Funktion oder Thread in der aktuellen seriellen Ausführungsphase fortgesetzt.Wenn das zu verwendende Skript derzeit in einer parallelen Ausführungsphase ausgeführt wird, wird die gespawnten Funktion oder Thread in der aktuellen parallelen Ausführungsphase fortgesetzt.Für weitere Informationen, siehe Paralleles Luau.

Parameter

functionOrThread: function | coroutine

Eine Funktion oder ein Thread, die von coroutine.create() zurückgegeben wurde.

...: Variant

Argumente, die an die Funktion oder den Thread gesendet werden.

Rückgaben

Der geplante Thread.

Akzeptiert eine Funktion oder einen Thread (wie von coroutine.create()) und verschiebt ihn bis zum Ende des aktuellen Pausenpunkts innerhalb des aktuellen Rahmens.

Diese Funktion sollte verwendet werden, wenn ein ähnliches Verhalten wie task.spawn() gewünscht ist, aber der Thread nicht sofort ausgeführt werden muss.

Wenn das aufrufende Skript derzeit in einer seriellen Ausführungsphase läuft, wird die deferred-Funktion oder der Thread in einer seriellen Ausführungsphase wieder aufgenommen.Wenn das aufrufende Skript derzeit in einer parallelen Ausführungsphase ausgeführt wird, wird die deferred-Funktion oder der Thread in einer parallelen Ausführungsphase wieder aufgenommen.Für weitere Informationen, siehe Paralleles Luau.

Parameter

functionOrThread: function | coroutine

Eine Funktion oder ein Thread, die von coroutine.erstellenzurückgegeben wird.

...: Variant

Argumente, die an die Funktion oder den Thread gesendet werden.

Rückgaben

Der geplante Thread.

Akzeptiert eine Funktion oder einen Thread (wie von coroutine.create()) und plant ihn zur Aufrufzeit/Wiederaufnahme am nächsten Heartbeat.Argumente nach dem zweiten werden an die Funktion/Thread gesendet.

Diese Funktion unterscheidet sich von der veralteten globalen delay()-Funktion darin, dass kein Drosseln stattfindet : auf derselben Heartbeat-Schritt, in dem genug Zeit verstrichen ist, wird die Funktion garantiert aufgerufen/fortgesetzt.Die Bereitstellung einer Dauer von Null ( 0 ) gewährleistet, dass die Funktion auf der nächsten Heartbeat aufgerufen wird.

Du kannst die tatsächliche Zeit berechnen, indem du os.clock() beim Planen und in der geplanten Funktion aufrufst.

Wenn das aufrufende Skript derzeit in einer seriellen Ausführungsphase läuft, wird die verzögerte Funktion oder der Thread in einer seriellen Ausführungsphase wieder aufgenommen.Wenn das aufrufende Skript derzeit in einer parallelen Ausführungsphase läuft, wird die verzögerte Funktion oder der Thread in einer parallelen Ausführungsphase wieder aufgenommen.Für weitere Informationen, siehe Paralleles Luau.

Parameter

duration: number

Die minimale Anzahl von Sekunden, die vergehen müssen, bevor die Funktion/Thread aufgerufen/fortgesetzt wird.

functionOrThread: function | coroutine
...: Variant

Argumente, die an die Funktion/Thread übergeben werden müssen, wenn sie aufgerufen/fortgesetzt werden sollen.

Rückgaben

Der geplante Thread.

desynchronize

()

Wenn das aufrufende Skript derzeit in einer seriellen Ausführungsphase läuft, desynchronize() unterbricht das Skript und es wird in der nächsten parallelen Ausführungsphase wieder aufgenommen.Wenn das zu verwendende Skript derzeit in einer parallelen Ausführungsphase läuft, gibt desynchronize() sofort zurück und hat keine Auswirkung.

Nur Skripte, die Nachkommen eines Actor sind, können diese Methode aufrufen.Wenn ein Skript außerhalb einer Actor Anruft diese Methode, wird ein Fehler erhoben.ModuleScripts kann auch desynchronize() aufrufen, solange die Instanzierung des Moduls, das es aufruft, von einem Skript erforderlich war, das ein Nachkomme eines Actor ist.

Für weitere Informationen, siehe Paralleles Luau.

Rückgaben

()

synchronize

()

Wenn das aufrufende Skript derzeit in einer parallelen Ausführungsphase läuft, synchronize() suspendiert das Skript und das Skript wird in der nächsten seriellen Ausführungsphase wieder aufgenommen.Wenn das zu rufende Skript derzeit in einer seriellen Ausführungsphase läuft, gibt synchronize() sofort zurück und hat keine Auswirkung.

Nur Skripte, die Nachkommen eines Actor sind, können diese Methode aufrufen.Wenn ein Skript außerhalb einer Actor Anruft diese Methode, wird ein Fehler erhoben.ModuleScripts kann auch synchronize() aufrufen, solange die Instanzierung des Moduls, das es aufruft, von einem Skript erforderlich war, das ein Nachkomme eines Actor ist.

Für weitere Informationen, siehe Paralleles Luau.

Rückgaben

()

wait

Gibt den aktuellen Thread bis die angegebene Dauer (in Sekunden) abgelaufen ist, dann ruft er den Thread auf der nächsten Heartbeat Schritt fort.Die tatsächliche Zeitspanne wird zurückgegeben.

Wenn keine Dauer angegeben wird, wird sie standardmäßig auf Null gesetzt ( 0 ).Das bedeutet, dass der Thread auf dem nächsten Schritt fortgesetzt wird, was in Bezug auf das Verhalten gleichzustellen ist mit Class.RunService.Heartbeat:Wait()

Im Gegensatz zur veralteten globalen wird diese Funktion nicht gedrosselt und garantiert die Wiederaufnahme des Threads beim ersten Herzschlag, der stattfindet, wenn es fällig ist.Diese Funktion gibt auch nur die verstrichene Zeit und sonst nichts zurück.

Wenn das zu rufende Skript derzeit in einer seriellen Ausführungsphase läuft, wird das Skript in einer seriellen Ausführungsphase fortgesetzt.Wenn das zu verwendende Skript derzeit in einer parallelen Ausführungsphase ausgeführt wird, wird das Skript in einer parallelen Ausführungsphase fortgesetzt.Für weitere Informationen, siehe Paralleles Luau.

Parameter

duration: number

Die Menge der Zeit in Sekunden, die verstrechen sollte, bevor der aktuelle Thread fortgesetzt wird.

Standardwert: 0

Rückgaben

cancel

()

Storniert einen Thread und schließt ihn, verhindert, dass er manuell oder durch den Aufgabenplanerdes Engines wieder aufgenommen wird.

Diese Funktion kann mit anderen Mitgliedern der Aufgaben -Bibliothek verwendet werden, die einen Thread zurückgeben, um sie abzubrechen, bevor sie wieder aufgenommen werden. Zum Beispiel:


local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)

Beachten Sie, dass Threads in einem Zustand sein können, in dem es unmöglich ist, sie abzusagen.Zum Beispiel können der derzeit ausgeführte Thread und Threads, die eine andere Koroutine fortgesetzt haben, nicht abgebrochen werden.Wenn dies der Fall ist, wird ein Fehler generiert.Code sollte jedoch nicht auf bestimmte Thread-Zustände oder Bedingungen verlassen, die task.cancel() zum Scheitern führen.Es ist möglich, dass zukünftige Updates diese Einschränkungen beseitigen und es Threads in diesen Zuständen ermöglichen, erfolgreich abgebrochen zu werden.

Parameter

thread: coroutine

Der Thread, der abgebrochen wird.

Rückgaben

()