Syntaxe
Demande à une tâche de s’arrêter. La tâche s’arrête à sa prochaine cession, et le code après cette cession ne s’exécute jamais.
CANCELTASK <handle>Les éléments
| <handle> | Un handle de tâche : une variable remplie par STARTTASK. |
|---|
À savoir
- Les cessions sont Wait(), Sleep(), Sync(), Swap() et
YieldTask(). Une tâche qui ne cède jamais ne peut pas être arrêtée : elle va jusqu’à sonRETURN. TaskCancelled()devient vrai aussitôt.AWAITTASKsur la tâche rend alors la main sans erreur, etTaskResult()lève une erreur.- Sur une tâche déjà terminée,
CANCELTASKne fait rien. - Une tâche annulée juste après
STARTTASKs’exécute quand même jusqu’à sa première cession. - Un
TRYdans la tâche autour d’une cession intercepte l’annulation (BASIC task cancelled), et la tâche continue jusqu’à sa cession suivante. AjoutezRETHROWdans ce CATCH. - Permis dans une
FUNCTION.
Exemple
steps = 0walker AS TASKHANDLESTARTTASK walker, WalkWait(0.1)CANCELTASK walkerAWAITTASK walkerIF TaskCancelled(walker) THEN Console("walker cancelled") ' walker cancelledIF steps < 1000 THEN Console("stopped early") ' stopped earlyENDWalk: FOR i = 1 TO 1000 steps = steps + 1 YieldTask() NEXTRETURN stepsDans le manuel : La boucle de jeu et les tâches