Les processus
Jusqu'ici, nos programmes faisaient une chose à la fois. Un processus permet d'en faire deux en même temps : une tâche tourne en arrière-plan pendant que le programme principal continue.
Définir et démarrer un processus
processus Compteur()
n est un nombre vaut 0
tant que vrai
n ajoute 1
affiche 'Tic ' + n
pause 500
fin tant que
fin processus
Compteur()
affiche 'Le programme principal continue !'
- Le processus se définit entre
processus et fin processus. - On le démarre par un simple appel,
Compteur(), sans appelle. - Le démarrage rend la main tout de suite : le programme principal continue pendant que le compteur tourne.
Ici, le compteur tourne sans fin : clique sur Arrêter dans CoddyRun pour terminer le programme.
Un programme ne peut avoir qu'un seul processus. Et dans sa boucle, une pause est indispensable : elle lui donne son rythme et laisse le programme principal travailler.
Suspendre et reprendre
suspendre met le processus en pause, sans perdre ses variables ; reprendre le relance là où il s'était arrêté :
processus Compteur()
n est un nombre vaut 0
tant que vrai
n ajoute 1
affiche n
pause 500
fin tant que
fin processus
Compteur()
action est un nombre
tant que vrai
appuyer ['p', 'r', 'q'] dans action
si action = 1 alors
suspendre Compteur()
sinon si action = 2 alors
reprendre Compteur()
sinon
terminer
fin si
fin tant que
Appuie sur p pour mettre en pause, r pour reprendre et q pour quitter. terminer arrête tout le programme, processus compris.
Question : Comment démarre-t-on le processus Animation() ? — Animation(). Un processus se démarre par un simple appel, sans appelle. reprendre sert seulement à relancer un processus suspendu.
Les règles à retenir
- Le processus partage les variables du programme : le programme principal peut lire ce qu'il calcule.
demande, choisir, appuyer, cliquer et interagir y sont interdits : seul le programme principal dialogue avec l'utilisateur.- Le programme attend la fin du processus avant de se terminer, sauf avec
terminer. - Pour relancer un processus terminé, il suffit de l'appeler à nouveau.
Un usage typique : un processus qui anime une toile toute seule, pendant que le programme principal attend les clics du joueur.
En résumé
processus Nom() ... fin processus définit une tâche de fond ; Nom() la démarre.- Un seul processus par programme, avec une
pause dans sa boucle. suspendre et reprendre le mettent en pause et le relancent.- Pas de dialogue avec l'utilisateur dans un processus.