Bonjour,
Inventeur, mais aussi utilisateur du langage Linotte, je tombe parfois dans des pièges !
Regardez cet exemple très simple :
Il semble inoffensif et je l'utilise très souvent.
Mais si vous cliquez sur la toile vous allez remarquer que le CPU monte dangereusement !
Que s'est-il passé ?
Lors du clique avec la souris, le mot "clique" a été ajouté dans le tampon des touches. Ce mot attend d'être traité par le programme.
Comme le tampon des touches est rempli, le verbe temporiser détecte qu'il reste des touches à traiter donc il ne temporise plus.
On se retrouve avec un boucle qui tourne à l'infinie et très rapidement.
Comment contourner ce comportement : il faut vider le tampon des touches si le tampon n'est jamais utilisé :
Et voilà, notre programme fonctionne correctement et sans danger !
Inventeur, mais aussi utilisateur du langage Linotte, je tombe parfois dans des pièges !
Regardez cet exemple très simple :
Code:
principale :
c :
:
cercle, rayon vaut 10, x vaut 100, y vaut 100
début
projette c
tant que vrai, lis
temporise
ferme
Il semble inoffensif et je l'utilise très souvent.
Mais si vous cliquez sur la toile vous allez remarquer que le CPU monte dangereusement !
Que s'est-il passé ?
Lors du clique avec la souris, le mot "clique" a été ajouté dans le tampon des touches. Ce mot attend d'être traité par le programme.
Comme le tampon des touches est rempli, le verbe temporiser détecte qu'il reste des touches à traiter donc il ne temporise plus.
On se retrouve avec un boucle qui tourne à l'infinie et très rapidement.
Comment contourner ce comportement : il faut vider le tampon des touches si le tampon n'est jamais utilisé :
Code:
principale :
c :
:
cercle, rayon vaut 10, x vaut 100, y vaut 100
début
projette c
tant que vrai, lis
temporise
vide touches
ferme
Et voilà, notre programme fonctionne correctement et sans danger !