task
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die Aufgabe-Bibliothek erlaubt es Funktionen und Threads mit dem Aufgaben-Scheduler zu planen.
Die in dieser Bibliothek verfügbaren Funktionen unterstützen im Allgemeinen Funktionen und Threads. In den meisten Fällen, in denen Sie eine Funktion verwenden, ist es ausreichend, aber für fortgeschrittene Fälle empfehlen wir, sich mit der coroutine Bibliothek vertraut zu machen.
Zusammenfassung
Funktionen
Ruft/wiederholt sofort eine Funktion/Routine über den Aufgabenplanerauf.
Ruft/wiederholt eine Funktion/Routine am Ende des aktuellen Resum-Zyklus ab.
Scheduliert eine Funktion/Routine, die nach der angegebenen Dauer (in Sekunden) aufgerufen/fortgesetzt wird, ohne auf die Dauer zu begrenzen.
Bringt den folgenden Code parallel aus.
Verursacht, dass der folgende Code seriell ausgeführt wird.
Gibt den aktuellen Thread zurück, bis der nächste Heartbeat (in Sekunden) eingetroffen ist, ohne das Verhängen zu behindern.
Bereitet einen Thread ab, so dass er nicht fortgesetzt werden kann.
Funktionen
spawn
Accepts eine Funktion oder einen Thread (wie von coroutine.erstellenzurückgegeben) und ruft/erneut sie sofort über den Engine's Aufgabenplanerauf. Argumente nach dem ersten werden an die Funktion/Thread gesendet.
Diese Funktion basiert auf dem schnellenSpawn-Muster, anstatt eine Ersetzung für die deprecated globalen spawn -Funktion zu sein. Es wird empfohlen, diese Funktion anstelle von fastSpawn zu verwenden.
Wenn das zu spawnende Skript derzeit in einer seriellen Ausführungsphase läuft, wird die zu spawnende Funktion oder der zu spawnende Thread in der aktuellen seriellen Ausführungsphase wieder aufgenommen. Wenn das zu spawnende Skript derzeit in einer parallelen Ausführungsphase läuft, wird die zu spawnende Funktion oder der zu spawnende Thread in der aktuellen parallelen Ausführungsphase wieder aufgenommen. Weitere Informationen finden Sie unter Parallel Luau.
Parameter
Rückgaben
Der geplante Thread.
defer
Nimmt eine Funktion oder Thread an (wie von coroutine.erstellenzurückgegeben) und verzögert sie bis zum Ende des aktuellen Resum-Zyklus, bei dem sie mit dem Engine-Scheduler wie bei task.spawn() fortgesetzt wird. Argumente nach dem ersten werden an die Funktion/Thread gesendet.
Diese Funktion sollte verwendet werden, wenn ein ähnliches Verhalten zu task.spawn() gewünscht ist, aber der Thread muss nicht sofort ausgeführt werden.
Wenn das Ausführungsskript derzeit in einer seriellen Ausführungsphase läuft, wird die deferierte Funktion oder Thread in einer seriellen Ausführungsphase wieder aufgenommen. Wenn das Ausführungsskript derzeit in einer parallelen Ausführungsphase läuft, wird die deferierte Funktion oder Thread in einer parallelen Ausführungsphase wieder aufgenommen. Weitere Informationen finden Sie unter Parallel Luau .
Parameter
Rückgaben
Der geplante Thread.
delay
Nimmt eine Funktion oder Thread an (wie von coroutine.erstellenzurückgegeben) und planiert, dass sie auf dem nächsten Heartbeat nach der angegebenen Zeit in Sekunden aufgerufen/aufgenommen wird. Argumente nach dem zweiten werden an die Funktion/Thread gesendet.
Diese Funktion unterscheidet sich von der deprecated globalen Funktion delay in dem, keine Verzögerung erfolgt : auf der gleichen Heartbeat-Schritt, in dem genug Zeit verstrichen ist, wird die Funktion garantiert aufgerufen / wieder aufgenommen. Die Bereitstellung einer Dauer von null (0) wird garantieren, dass die Funktion auf der nächsten Heartbeat aufgerufen wird.
Sie können die tatsächliche Zeit berechnen, die durch das Aufrufen von os.clock() beim Planen und in der geplanten Funktion auftritt.
Wenn das Ausführungsskript derzeit in einer seriellen Ausführungsphase ausgeführt wird, wird die verzögerte Funktion oder Thread in einer seriellen Ausführungsphase wieder aufgenommen. Wenn das Ausführungsskript derzeit in einer parallelen Ausführungsphase ausgeführt wird, wird die verzögerte Funktion oder Thread in einer parallelen Ausführungsphase wieder aufgenommen. Weitere Informationen finden Sie unter Parallel Luau .
Parameter
Rückgaben
Der geplante Thread.
desynchronize
Wenn das Ausführungsskript derzeit in einer seriellen Ausführungsphase ausgeführt wird, desynchronize suspendiert das Skript und das Skript wird in der nächsten parallelen Ausführungsphase wieder aufgenommen. Wenn das Ausführungsskript derzeit in einer parallelen Ausführungsphase ausgeführt wird, desynchronize gibt sofort zurück und hat keinen Effekt.
Nur Skripte, die Nachkommen eines Akteurs sind, können diese Methode aufrufen. Wenn ein Skript außerhalb eines Akteurs auf diese Methode aufruft, wird ein Fehler angezeigt.ModuleScript's kann auch desynchronize als Long-Aufruf aufrufen, solange die Instanzierung des Moduls, der es anruft, von einem Skript erforderlich ist, das ein Nachkommen eines Akteurs ist.
For more information, see Parallel Luau .
Rückgaben
synchronize
Wenn das Ausführungsskript derzeit in einer parallelen Ausführungsphase ausgeführt wird, synchronize suspendiert das Skript und das Skript wird in der nächsten seriellen Ausführungsphase wieder aufgenommen. Wenn das Ausführungsskript derzeit in einer seriellen Ausführungsphase ausgeführt wird, synchronize gibt sofort zurück und hat keinen Effekt.
Nur Skripte, die Nachkommen eines Akteurs sind, können diese Methode aufrufen. Wenn ein Skript außerhalb eines Akteurs auf diese Methode aufruft, wird ein Fehler angezeigt.ModuleScript's kann auch synchronize als Instanz von einem Skript, das eine Abstammung eines Akteurs ist, aufrufen, solange die Instanzation des Moduls, der es anruft, von einem Skript erforderlich ist, das eine Abstammung eines Akteurs ist.
For more information, see Parallel Luau .
Rückgaben
wait
Gibt den aktuellen Thread bis zur angegebenen Dauer (in Sekunden) ab, dann wieder auf der nächsten Heartbeat Schritt fort. Die tatsächliche Dauer der Verzögerung wird zurückgegeben.
Wenn keine Dauer angegeben wird, wird sie standardmäßig auf null (0) zurückgesetzt. Dies bedeutet, dass der Thread auf der nächsten Schaltfläche aufgehört, was in der Verhaltensweise RunService.Heartbeat:Wait()
Anders als die deprecated global wait , diese Funktion schränkt nicht ein und garantiert die Fortsetzung des Threads bei dem ersten Heartbeat, der fällig ist. Diese Funktion gibt auch nicht die Elapsed Time zurück und nichts anderes.
Wenn das zu调用的 Skript derzeit in einer seriellen Ausführungsphase läuft, wird das Skript in einer seriellen Ausführungsphase wieder aufgenommen. Wenn das zu调用的 Skript derzeit in einer parallelen Ausführungsphase läuft, wird das Skript in einer parallelen Ausführungsphase wieder aufgenommen. Weitere Informationen finden Sie unter Parallel Luau .
Parameter
Die Menge der Zeit in Sekunden, die vor dem Aktuellen Thread wieder aufgenommen werden soll.
Rückgaben
cancel
Cancel ein Thread und schließt ihn, so dass er nicht manuell oder von der Aufgabenplanerwieder aufgenommen werden kann.
Diese Funktion kann mit anderen Mitgliedern der Task-Library verwendet werden, die einen Thread zurückgeben, um ihn vor der Wiederaufnahme zu kündigen. Zum Beispiel:
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
Beachte: Threads können in einem Zustand sein, in dem es unmöglich ist, sie zu canceln. Zum Beispiel kann der derzeit ausführende Thread und Threads, die eine andere Coroutine wieder aufgenommen haben, nicht abgebrochen werden. Wenn dies der Fall ist, wird ein Lua-Fehler generiert.
Code sollte jedoch nicht auf bestimmte Thread-Zustände oder Bedingungen verlassen, die task.cancel() zu scheitern lassen. Es ist möglich, dass zukünftige Updates diese Einschränkungen beseitigen und Threads in diesen Zuständen erfolgreich abbrechen können.
Parameter
Der Thread, der abgebrochen wird.