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 Scheduler de tareas.

Las funciones disponibles en esta biblioteca generalmente soportan 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 / rutina inmediatamente a través del Programador de tareasde motores.

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

    Llama/resume una función/rutina al final del ciclo de resumen actual.

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

    Programa una función / rutina para que se llame / se reanude después del próximo Heartbeat (en segundos) sin retraso, sin limitar.

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

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

  • wait(duration : number):number

    Da soporte a la subproceso actual hasta el próximo Heartbeat en el que se haya acumulado la duración (en segundos) dada, sin afectar el rendimiento.

  • cancel(thread : coroutine):()

    Canceliza un subproceso, evitando que se reanude.

Funciones

Acepta una función o un hilo (como se muestra por coroutine.crear) y lo llama / reinicia inmediatamente a través del Programador de tareasdel motor. Los argumentos después de los primeros se envían a la función/hilo.

Esta función se basa en el patrón de aparición rápida en lugar de ser una sustitución de la función global de spawn obsoleta. Se recomienda que esta función se use en lugar de fastSpawn.

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

Parámetros

functionOrThread: function | coroutine

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

...: Variant

Argumentos para enviar a la función o subproceso.

Devuelve

El subproceso.

Acepta una función o un hilo (como se muestra por coroutine.crear) y lo pospone hasta el final del ciclo de resumen actual, en el que se reanuda con el programador del motor como con task.spawn() . Los argumentos después de los primeros se envían a la función/hilo.

Esta función debería usarse cuando un comportamiento similar a task.spawn() es deseable, pero el hilo no necesita que se ejecute inmediatamente.

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

Parámetros

functionOrThread: function | coroutine

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

...: Variant

Argumentos para enviar a la función o subproceso.

Devuelve

El subproceso.

Acepta una función o hilo (como se muestra por coroutine.crear) y lo programará para ser llamado/reanudado en el próximo Heartbeat después del tiempo dado en segundos. Los argumentos después del segundo se envían a la función/hilo.

Esta función difiere de la función global de delay en que no ocurre el aceleramiento: en el mismo paso de Heartbeat, en el que se acumula el tiempo suficiente, la función se garantiza de ser llamada / reanudada. Proporcionar una duración de cero (0) garantizará que la función se llame en el próximo Heartbeat.

Puede calcular el tiempo real transcurrido al llamar os.clock() al programar y en la función programada.

Si el script de llamada está actualmente en ejecución en una fase de ejecución serial, entonces la función o el hilo de retorno se reanuda en una fase de ejecución serial. Si el script de llamada está actualmente en ejecución en una fase de ejecución paralela, entonces la función o el hilo de retorno se reanuda en una fase de ejecución paralela. Para obtener más información, see Luau Paralelo .

Parámetros

duration: number

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

functionOrThread: function | coroutine
...: Variant

Argumentos para ser pasados a la función/hilo cuando deba ser llamado/reanudado.

Devuelve

El subproceso.

desynchronize

()

Si el script de llamada está actualmente en 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 está actualmente en fase de ejecución serial, desynchronize retorna inmediatamente y no tiene efecto.

Solo los scripts que son descendientes de un Actor pueden llamar este método. Si un script fuera de un Actor llama a este método, se producirá un error. ModuleScript también puede llamar desynchronize como largo como la instantánea de que el módulo que lo llama fue requerida por un script que es un descendiente de un Actor.

Para obtener más información, see Parallel Luau .

Devuelve

()

synchronize

()

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

Solo los scripts que son descendientes de un Actor pueden llamar este método. Si un script fuera de un Actor llama a este método, se producirá un error. ModuleScript también puede llamar synchronize como largo como la instantánea de que el módulo que lo llama fue requerida por un script que es un descendiente de un Actor.

Para obtener más información, see Parallel Luau .

Devuelve

()

wait

Da el hilo actual hasta la duración especificada (en segundos) y luego reanuda el hilo en el siguiente paso Heartbeat . La cantidad de tiempo real elapsed se devuelve.

Si no se especifica ninguna duración, se restablecerá a cero (0). Esto significa que el hilo se reanudará en el siguiente paso, que es equivalente en comportamiento a RunService.Heartbeat:Wait()

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

Si el script de llamada está actualmente en ejecución en una fase de ejecución serial, entonces el script se reanuda en una fase de ejecución serial. Si el script de llamada está actualmente en ejecución 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, see Luau Paralelo .

Parámetros

duration: number

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

Valor predeterminado: 0

Devuelve

cancel

()

Cancelas un hilo y lo cierra, evitando que se reanude manualmente o por el Programador de tareastareas.

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


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

Nota: Los hilos pueden estar en un estado en el que es imposible cancelarlos. Por ejemplo, el hilo de ejecución actual y los hilos que han reanudado una coroutine pueden no ser cancelados. Si este es el caso, se generará un error lua.

Sin embargo, el código no debe confiar en estados de hilo específicos o condiciones que causan que task.cancel() fallen. Es posible que las actualizaciones futuras eliminen estas limitaciones y permitan que los hilos en estos estados se cancelen con éxito.

Parámetros

thread: coroutine

El hilo que se cancelará.

Devuelve

()