task

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

La biblioteca de tareas permite programar funciones y hilos con el Programador de tareasdel motor.

Las funciones disponibles en esta biblioteca generalmente admiten funciones y hilos.En la mayoría de los casos, el uso de una función es suficiente, pero para casos más avanzados se recomienda que te familiarices con la biblioteca coroutine.

Resumen

Funciones

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

    Llama/reanuda una función/coroutine inmediatamente a través del Programador de tareasdel motor.

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

    Llama/reanuda una función/coroutine al final del ciclo de reanudación actual.

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

    Programa una función/coroutine para ser llamada/reanudada en el siguiente latido después de que haya pasado la duración dada (en segundos), sin acelerar.

  • Causa que se ejecute el siguiente código en paralelo.

  • Causa que se ejecute el siguiente código en serie.

  • wait(duration : number):number

    Produce el hilo actual sin acelerar.

  • cancel(thread : coroutine):()

    Cancela un subproceso, impidiendo que se reanude.

Funciones

Acepta una función o un hilo (como lo devuelve coroutine.create() ) y lo llama/reanuda inmediatamente a través del Programador de tareasdel motor.Los argumentos después del primero se envían a la función/thread.

Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, se reanuda la función o el hilo generado en la fase de ejecución serial actual.Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, se reanuda la función o el hilo generado en la fase de ejecución paralela actual.Para obtener más información, vea Luau paralelo.

Parámetros

functionOrThread: function | coroutine

Una función o un hilo devuelto por coroutine.create() .

...: Variant

Argumentos para enviar a la función o al subproceso.

Devuelve

El subproceso.

Acepta una función o un hilo (como se devuelve por coroutine.create() ) y lo pospone hasta el final del punto de reanudación actual dentro del marco actual.

Esta función debe usarse cuando un comportamiento similar a task.spawn() es deseable, pero el hilo no necesita ejecutarse inmediatamente.

Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, se reanuda la función o el hilo diferido en una fase de ejecución serial.Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, se reanuda la función o el hilo diferido en una fase de ejecución paralela.Para obtener más información, vea Luau paralelo.

Parámetros

functionOrThread: function | coroutine

Una función o un hilo devuelto por coroutine.crear.

...: Variant

Argumentos para enviar a la función o al subproceso.

Devuelve

El subproceso.

Acepta una función o un hilo (como se devuelve por coroutine.create() ) y lo programará para que se llame/se reanude en el siguiente Heartbeat después de que haya transcurrido la cantidad de tiempo dada en segundos.Los argumentos después del segundo se envían a la función/thread.

Esta función difiere de la función global obsoleta delay() en que no ocurre aceleración : en el mismo paso Heartbeat en el que ha pasado suficiente tiempo, se garantiza que se llame/reanude la función.Proporcionar una duración de cero ( 0 ) garantizará que la función se llame en el siguiente Heartbeat .

Puedes calcular el tiempo real pasado llamando os.clock() al programar y en la función programada.

Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, se reanuda la función o el hilo retrasado en una fase de ejecución serial.Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, se reanuda la función o el hilo retrasado en una fase de ejecución paralela.Para obtener más información, vea Luau paralelo.

Parámetros

duration: number

El número mínimo de segundos que deben pasar antes de que se llame o se reanude la función/subproceso.

functionOrThread: function | coroutine
...: Variant

Argumentos que se deben pasar a la función/hilo cuando deba llamarse/reanudarse.

Devuelve

El subproceso.

desynchronize

()

Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, desynchronize() suspende el script y el script se reanudará en la próxima fase de ejecución paralela.Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, desynchronize() devuelve inmediatamente y no tiene efecto.

Solo los scripts que son descendientes de un Actor pueden llamar a este método.Si un script fuera de un Actor llama a este método, se levantará un error. ModuleScripts también puede llamar desynchronize() siempre que la instalación del módulo que lo llama fue requerida por un script que es un descendiente de un Actor.

Para obtener más información, vea Luau paralelo.

Devuelve

()

synchronize

()

Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, synchronize() suspende el script y el script se reanudará en la próxima fase de ejecución serial.Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, synchronize() devuelve inmediatamente y no tiene efecto.

Solo los scripts que son descendientes de un Actor pueden llamar a este método.Si un script fuera de un Actor llama a este método, se levantará un error. ModuleScripts también puede llamar synchronize() siempre que la instalación del módulo que lo llama fue requerida por un script que es un descendiente de un Actor.

Para obtener más información, vea Luau paralelo.

Devuelve

()

wait

Produce el hilo actual hasta que se haya producido la duración dada (en segundos), luego se reanuda el hilo en el siguiente paso Heartbeat.Se devuelve la cantidad real de tiempo transcurrido.

Si no se da una duración, se asignará por defecto a cero (0).Esto significa que el hilo se reanuda en el siguiente paso, que es equivalente en comportamiento a Class.RunService.Heartbeat:Wait()

A diferencia de la obsoleta global wait(), esta función no acelera y garantiza la reanudación del hilo en el primer latido que ocurre cuando es debido.Esta función también solo devuelve el tiempo transcurrido y nada más.

Si el script de llamada se está ejecutando actualmente en una fase de ejecución serial, entonces el script se reanuda en una fase de ejecución serial.Si el script de llamada se está ejecutando actualmente en una fase de ejecución paralela, entonces el script se reanuda en una fase de ejecución paralela.Para obtener más información, vea Luau paralelo.

Parámetros

duration: number

La cantidad de tiempo en segundos que debe expirar antes de que se reanude el hilo actual.

Valor predeterminado: 0

Devuelve

cancel

()

Cancela un hilo y lo cierra, impidiendo que se reanude manualmente o por el Programador de tareasdel motor.

Esta función se puede utilizar con otros miembros de la biblioteca de tareas que devuelven un hilo para cancelarlos antes de que se reanuden. Por ejemplo:


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

Tenga en cuenta que los hilos pueden estar en un estado en el que sea imposible cancelarlos.Por ejemplo, el hilo que se está ejecutando actualmente y los hilos que han reanudado otra corutina no se pueden cancelar.Si este es el caso, se generará un error.Sin embargo, el código no debe depender de estados o condiciones de subproceso específicos que causen que task.cancel() fallen.Es posible que las actualizaciones futuras eliminen estas restricciones y permitan que los hilos en estos estados se cancelen con éxito.

Parámetros

thread: coroutine

El hilo que se cancelará.

Devuelve

()