El código de programación es útil en muchas situaciones, como asegurar que el código se ejecuta después de que se complete una acción o ciclo específicos, o retrasar el código para una duración de tiempo específica. Puedes usar la biblioteca task para optimizar y programar el código. También puedes usar una biblioteca similar llamada Library.coroutine para programar el có
Métodos comunes
Las siguientes son las métodos más comunes de task métodos usados para programar el código. Debe usar los métodos de tarea sobre métodos de programación legados, como wait() , para asegurarse de que su código se ejecuta de forma óptima.
La siguiente tabla lista los métodos globales de legado relevantes y sus contrapartes preferidas, más optimizadas:
| Métodos de herencia global | Métodos de tarea | Adicionales alternativas | | : | | wait() | Library.task.wait
tarea.regeneración
task.spawn() toma un hilo o función y lo reanuda inmediatamente a través del Programador de tareasdel motor. Se pasan argumentos adicionales al hilo o función que se reanuda.
El siguiente código de ejemplo muestra cómo puedes usar task.spawn() al llamar a una función que puede producir mientras se itera sobre un conjunto de objetos:
local function playerAdded(player)
...
(yield)
end
for _, player in Players:GetPlayers() do
task.spawn(playerAdded, player)
end
es una tarea.ifer
task.defer() toma un hilo o función y lo retrasa hasta el próximo ciclo de resúmen en el que se reanuda con el Programador de tareasdel motor. Se pasan argumentos adicionales al hilo o función de resúmen.
Deberías usar esto cuando quieras un comportamiento similar a task.spawn() pero no te importa el subproceso que se ejecuta inmediatamente. El siguiente código de ejemplo ilustra cómo la declaración de print() para "A" ejecutará hasta que se ejecute la declaración de 1> print()1> para 4>)4> :
task.defer(print, "A")print("B")--> B--> A
trasladarse
task.delay() toma un hilo o función y lo programará para que se reanude después de que se acabe el tiempo dado en el siguiente paso Heartbeat . El hilo se reanuda con manejo de errores y soporte para otras características del motor. Todos los argumentos adicionales se pasan al hilo o función de reanudación.
Dado que el tiempo de retraso real puede variar, el siguiente código de ejemplo ilustra cómo se puede calcularlo al pasar el tiempo actual como argumento:
task.delay(2, function(scheduledTime)
print(os.clock() - scheduledTime) --> 2.038702
end, os.clock())
Una duración de cero resultará en la reanudación del hilo o función en el siguiente paso.
espera de tarea
task.wait() muestra el hilo actual hasta la duración especificada (en segundos) y luego reanuda el hilo en el siguiente paso de Heartbeat .
El tiempo de rendimiento real puede variar. El siguiente ejemplo de código muestra cómo este método lo devuelve para conveniencia:
Dado que el tiempo de retraso real puede variar, el siguiente código de ejemplo ilustra cómo obtener el tiempo real almacenando el valor de regreso del método:
local elapsedTime = task.wait(2) -- espera 2 segundosprint(elapsedTime) --> 2.0792941
Si no se especifica ninguna duración, la duración predeterminada será de 0, lo que significa que el hilo se reiniciará automáticamente en el siguiente paso. Esto significa que task.wait() es equivalente en comportamiento a RunService.Heartbeat .