task
*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 de tâches permet d'inclure des fonctions et des threads dans le planificateur de tâchesdu moteur .
Les fonctions disponibles dans cette bibliothèque généralement supportent les fonctions et les threads.Dans la plupart des cas, l'utilisation d'une fonction suffit, mais pour des cas plus avancés, il est recommandé de vous familiariser avec la bibliothèque coroutine.
Résumé
Fonctions
Appelle/reprend une fonction/coroutine immédiatement via le planificateur de tâchesdu moteur.
Appelle/reprend une fonction/coroutine à la fin du cycle de résumé actuel.
Planifie une fonction/coroutine à appeler/reprendre au prochain battement de cœur après la durée donnée (en secondes) écoulée, sans étranglement.
Fait en sorte que le code suivant soit exécuté en parallèle.
Fait en sorte que le code suivant soit exécuté en série.
Produit le thread actuel sans étranglement.
Annule un fil, l'empêchant de reprendre.
Fonctions
spawn
Accepte une fonction ou un thread (comme retourné par coroutine.create() ) et l'appelle/reprend immédiatement via le planificateur de tâchesdu moteur.Les arguments après le premier sont envoyés à la fonction/thread.
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, la fonction ou le thread généré est repris dans la phase d'exécution en série actuelle.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, la fonction ou le thread généré est repris dans la phase d'exécution parallèle actuelle.Pour plus d'informations, voir Luau parallèle.
Paramètres
Une fonction ou un thread retourné par coroutine.create() .
Arguments à envoyer à la fonction ou au fil.
Retours
La colonne fil.
defer
Accepte une fonction ou un thread (comme retourné par coroutine.create() ) et le reporte jusqu'à la fin du point de reprise actuel dans le cadre actuel.
Cette fonction doit être utilisée lorsqu'un comportement similaire à task.spawn() est souhaitable, mais le thread n'a pas besoin de s'exécuter immédiatement.
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, la fonction ou le thread reporté est repris dans une phase d'exécution en série.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, la fonction ou le thread reporté est repris dans une phase d'exécution parallèle.Pour plus d'informations, voir Luau parallèle.
Paramètres
Retours
La colonne fil.
delay
Accepte une fonction ou un thread (comme retourné par coroutine.create() ) et le programme pour qu'il soit appelé/repris au prochain Heartbeat après le laps de temps donné en secondes.Les arguments après le deuxième sont envoyés à la fonction/thread.
Cette fonction diffère de la fonction globale obsolète delay() dépréciée en ce que aucune restriction ne se produit : sur la même étape Heartbeat où suffisamment de temps s'est écoulé, la fonction est garantie d'être appelée/reprise.Fournir une durée de zéro ( 0 ) garantira que la fonction sera appelée sur le très prochain Heartbeat .
Vous pouvez calculer le temps réel écoulé en appelant os.clock() lors de la planification et dans la fonction programmée.
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, la fonction ou le thread retardé est repris dans une phase d'exécution en série.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, la fonction ou le thread retardé est repris dans une phase d'exécution parallèle.Pour plus d'informations, voir Luau parallèle.
Paramètres
Retours
La colonne fil.
desynchronize
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, desynchronize() suspend le script et le script sera repris dans la prochaine phase d'exécution parallèle.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, desynchronize() retourne immédiatement et n'a aucun effet.
Seuls les scripts qui sont des descendants d'un Actor peuvent appeler cette méthode.Si un script en dehors d'un Actor appelle cette méthode, une erreur se produira.ModuleScripts peut également appeler desynchronize() tant que l'instanciation du module l'appelant était requise par un script qui est un descendant d'un Actor .
Pour plus d'informations, voir Luau parallèle.
Retours
synchronize
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, synchronize() suspend le script et le script sera repris dans la prochaine phase d'exécution série.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, synchronize() retourne immédiatement et n'a aucun effet.
Seuls les scripts qui sont des descendants d'un Actor peuvent appeler cette méthode.Si un script en dehors d'un Actor appelle cette méthode, une erreur se produira.ModuleScripts peut également appeler synchronize() tant que l'instanciation du module l'appelant était requise par un script qui est un descendant d'un Actor .
Pour plus d'informations, voir Luau parallèle.
Retours
wait
Rend le thread actuel jusqu'à ce que la durée donnée (en secondes) ait expiré, puis reprend le thread à l'étape suivante Heartbeat.La quantité réelle de temps écoulé est renvoyée.
Si aucune durée n'est donnée, elle sera par défaut à zéro ( 0 ).Cela signifie que la colonne reprend à l'étape suivante, ce qui est équivalent en comportement à Class.RunService.Heartbeat:Wait()
Contrairement à la fonction globale obsolète wait(), cette fonction ne ralentit pas et garantit la reprise du thread au premier battement de cœur qui se produit lorsqu'il est dû.Cette fonction ne renvoie également que le temps écoulé et rien d'autre.
Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution en série, le script est repris dans une phase d'exécution en série.Si le script d'appel est actuellement en cours d'exécution dans une phase d'exécution parallèle, le script est repris dans une phase d'exécution parallèle.Pour plus d'informations, voir Luau parallèle.
Paramètres
La quantité de temps en secondes qui devrait s'écouler avant que le thread actuel ne soit repris.
Retours
cancel
Annule un thread et le ferme, empêchant sa reprise manuelle ou par le planificateur de tâchesde l'engine.
Cette fonction peut être utilisée avec d'autres membres de la bibliothèque de tâche task qui retournent un thread pour les annuler avant qu'ils ne soient repris. Par exemple :
local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)
Notez que les threads peuvent être dans un état où il est impossible de les annuler.Par exemple, le thread en cours d'exécution et les threads qui ont repris une autre coroutine ne peuvent pas être annulés.Si tel est le cas, une erreur sera générée.Cependant, le code ne doit pas compter sur des états ou des conditions de thread spécifiques qui provoquent l'échec de task.cancel().Il est possible que les futures mises à jour éliminent ces contraintes et permettent aux threads dans ces états d'être annulés avec succès.
Paramètres
La colonne qui sera annulée.