task

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

La bibliothèque tâche permet aux fonctions et aux threads d'être programmés avec le Scheduled Tasks.

Les fonctions disponibles dans cette bibliothèque génèrent généralement des fonctions et des threads. Dans la plupart des cas, l'utilisation d'une fonction est suffisante, mais pour des cas plus avancés, il est recommandé de vous familiariser avec la bibliothèque coroutine.

Résumé

Fonctions

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

    Appelle/résume une fonction/routine immédiatement via le planificateur de tâchesmoteur.

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

    Appelle/résume une fonction/coroutine à la fin du cycle de résumation actuel.

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

    Programme une fonction/routine à être appelée/résumée au prochain Heartbeat après la durée donnée (en secondes) est écoulée, sans ralentir.

  • Cause le code suivant d'être exécuté en parallèle.

  • Cause le code suivant d'être exécuté en série.

  • wait(duration : number):number

    Génère la colonne actuelle jusqu'à la prochaine Heartbeat dans laquelle la durée donnée (en secondes) est passée, sans ralentir.

  • cancel(thread : coroutine):()

    Annule un fil, ce qui empêche de reprendre le fil.

Fonctions

Acceptes une fonction ou un thread (comme renvoyé par coroutine.créer) et les appelle/reprend immédiatement via le planificateur de tâchesdu moteur. Les arguments après les premiers sont envoyés à la fonction/au thread.

Cette fonction est basée sur le modèle de génération rapide plutôt que d'être une alternative à la fonction de génération globale dépréciée spawn. Il est recommandé d'utiliser cette fonction au lieu de fastSpawn.

Si le script d'appel est actuellement exécuté dans une phase d'exécution série, alors la fonction ou le filtre généré est repéré dans la phase d'exécution série actuelle. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, alors la fonction ou le filtre généré est repéré dans la phase d'exécution parallèle actuelle. Pour plus d'informations, voir Luau parallèle.

Paramètres

functionOrThread: function | coroutine

Une fonction ou un thread renvoyé par coroutine.créer.

...: Variant

Argumentes à envoyer à la fonction ou au fil.

Retours

Le filtre prévu.

Accepte une fonction ou un thread (comme renvoyé par coroutine.créer) et le diffère jusqu'à la fin du cycle de résumé actuel, auquel point il est repripris avec le programmateur de l'Engine comme avec task.spawn() . Les arguments après les premiers sont envoyés à la fonction/filtre.

Cette fonction devrait être utilisée lorsqu'un comportement similaire à task.spawn() est souhaité, mais le filtre n'a pas besoin d'être exécuté immédiatement.

Si le script d'appel est actuellement exécuté dans une phase d'exécution série, alors la fonction ou le fil d'attente différée est reprise dans une phase d'exécution série. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, alors la fonction ou le fil d'attente différée est reprise dans une phase d'exécution parallèle. Pour plus d'informations, voir Luau parallèle.

Paramètres

functionOrThread: function | coroutine

Une fonction ou un thread renvoyé par coroutine.créer.

...: Variant

Argumentes à envoyer à la fonction ou au fil.

Retours

Le filtre prévu.

Accepts une fonction ou un thread (comme renvoyé par coroutine.créer) et le programme pour qu'il soit appelé/résumé sur le prochain Heartbeat après le temps donné en secondes. Les arguments après le deuxième sont envoyés à la fonction/résumé.

Cette fonction diffère de la fonction globale dépréciée delay dans que aucun ralentissement n'a lieu : sur la même étape Heartbeat, le temps suffisant s'est écoulé, la fonction est garantie d'être appelée/résumée. Fournir une durée de zéro (0) garantira que la fonction est appelée sur la prochaine étape Heartbeat.

Vous pouvez calculer le temps réel écoulé en appelant os.clock() lors de la planification et dans la fonction prévue.

Si le script d'appel est actuellement exécuté dans une phase d'exécution série, alors la fonction ou le filtre retardé est reprendue dans une phase d'exécution série. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, alors la fonction ou le filtre retardé est reprise dans une phase d'exécution parallèle. Pour plus d'informations, voir Luau parallèle .

Paramètres

duration: number

Nombre minimum de secondes qui doivent passer avant que la fonction/filtre soit appelée/renouvelée.

functionOrThread: function | coroutine
...: Variant

Argumentes à être passés à la fonction/filonction lorsqu'il est prévu d'être appelé/renouvelé.

Retours

Le filtre prévu.

desynchronize

()

Si le script d'appel est actuellement exécuté dans une phase d'exécution série, desynchronize suspend le script et le script sera repéré dans la prochaine phase d'exécution parallèle. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, desynchronize retourne immédiatement et n'a aucun effet.

Seuls les scripts qui sont les descendants d'un acteur peuvent appeler cette méthode. Si un script en dehors d'un acteur appelle cette méthode, une erreur sera élevée.ModuleScript's peut également appeler desynchronize tant que l'instantiation du module qui l'appelle est requise par un script qui est un descendant d'un acteur.

Pour plus d'informations, voir Luau parallèle.

Retours

()

synchronize

()

Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, synchronize suspend le script et le script sera repéré dans la prochaine phase d'exécution parallèle. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, synchronize retourne immédiatement et n'a aucun effet.

Seuls les scripts qui sont les descendants d'un acteur peuvent appeler cette méthode. Si un script en dehors d'un acteur appelle cette méthode, une erreur sera élevée.ModuleScript's peut également appeler synchronize tant que l'instantiation du module qui l'appelle est requise par un script qui est un descendant d'un acteur.

Pour plus d'informations, voir Luau parallèle.

Retours

()

wait

Exécute le fil actuel jusqu'à la durée donnée (en secondes) puis reprend le fil sur la prochaine étape Heartbeat. Le temps réel écoulé est renvoyé.

Si aucune durée n'est donnée, il va par défaut à zéro (0). Cela signifie que le filtre reprend à la prochaine étape, ce qui est équivalent dans le comportement à RunService.Heartbeat:Wait()

Contrairement à la fonctionnalité obsolète globalement wait, cette fonction ne limite pas et garantit la reprise du filon sur la première Heartbeat qui se produit lorsqu'il est dû. Cette fonction ne renvoie également que le temps écoulé et rien de plus.

Si le script d'appel est actuellement exécuté dans une phase d'exécution série, alors le script est repéré dans une phase d'exécution série. Si le script d'appel est actuellement exécuté dans une phase d'exécution parallèle, alors le script est repéré dans une phase d'exécution parallèle. Pour plus d'informations, voir Luau parallèle.

Paramètres

duration: number

Le nombre de secondes dans lesquelles l'exécution doit reprendre avant que la colonne actuelle soit reprise.

Valeur par défaut : 0

Retours

cancel

()

Annule un fil et le ferme, empêchant ainsi de le reprendre manuellement ou par le planificateur de tâchesd'activité.

Cette fonction peut être utilisée avec d'autres membres de la bibliothèque de tâches qui retournent un filon pour les annuler avant qu'ils ne soient reprends. Par exemple :


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

Remarque : Les colonnes peuvent être dans un état où il est impossible de les annuler. Par exemple, le colonne actuellement exécutant et les colonnes qui ont repris une autre coroutine peuvent ne pas être annulées. Si c'est le cas, une erreur lua générera.

Cependant, le code ne devrait pas reposer sur des états ou des conditions de fil d'exécution spécifiques qui provoquent task.cancel() à échouer. Il est possible que de futures mises à jour éliminent ces contraintes et permettent aux threads dans ces états d'être annulés avec succès.

Paramètres

thread: coroutine

La colonne qui sera annulée.

Retours

()