En préambule, merci de prendre le temps de tenter de me répondre et de tenter de m'expliquer le fonctionnement des threads.
J'ai conscience d'être parfois un peu long à la détente dès lors qu'une interrogation persiste dans mon petit crâne.
Ollivier a écrit :Petit rappel du grafcet qui ne t'apprendra pas grand chose, mais te rappellera tout le nécessaire, rien que le nécessaire.

Euuuh, comment te dire ? J'ai pas bité grand chose !

Et je défie tout non-initié d'y piger quelque chose !
Si le principe du thread consiste en :
• Lancement d'une tâche principale
• Appel, initialisation et activation d'un thread
• Retour à la tâche principale et son exécution avec attente d'un message du thread signalant un traitement à effectuer ou la fin de son exécution (par le biais de variables ou avec l'utilisation éventuelle des instructions PauseThread(), ResumeThread(), PostEvent(), etc.)
Ca, je l'ai compris.
Après, c'est la mise en pratique qui me pose souvent problème et comme j'ai pas envie de passer un temps fou à tenter qq chose avec une construction programmatique dont je ne suis pas même certain de la bonne logique, au mieux j'y renonce, au pire, je n'envisage même pas la chose.
Ollivier a écrit :Après les noms d'oiseau et de lutin, comme "mutex" et "sémaphore", ça n'est que des suppléments à connaître plus tard, une fois l'usage des threads familiarisé
Ok, d'accord ! Mais du coup, comment tu fais pour savoir si tu en as besoin ou non quand tu comprends pas vraiment ce que c'est, à quoi ça sert et/ou comment ça fonctionne ?
Dans mon cas, avec une exécution séquentielle, où j'ai à récupérer plusieurs pages internet de données et à traiter ces résultats, mon code consiste en :
1) Je récupère une page
2) Je traite les données de la page reçue
3) Je relance 1
4) Je relance 2
x) 1 et 2 autant de fois qu'il y a de pages à récupérer
Comme ces tâches sont exécutées les unes à la suite des autres, cela finit, à un moment ou à un autre, par freezer l'appli et rendre difficile l'affichage en temps réel d'informations. Je biaise par des While WindowEvent():Delay(x):Wend mais ce n'est pas toujours convaincant.
Et là, je me dis : "Y aurait-il un intérêt à utiliser un thread ? Peut-être bien ! Oui mais tu maîtrises pas bien. Eh bien, fais comme Coluche le préconisait : Demande-moi si tu en as besoin et je te dirai comment t'en passer !!!"
Le cas échéant, si toi, tu étais confronté à ce type de problématique, quel serait ton schéma d'écriture ou d'exécution du code ?
Ollivier a écrit :Et les deux vraies difficultés avec les threads c'est d'une part, la familiarité en langue française de la terminaison des verbes :
Chanter vs Chanté
C'est, d'autre part, le fait que les accents sont interdits dans le code source : eh oui
Il y a longtemps, j'ai été confronté à ce problème et je partage ton point de vue.
Du coup, j'ai pris pour habitude de nommer mes variables ainsi :
• (
Substantif ou
Verbe) +
Nom commun ➞ Action à effectuer à un moment donné.
Ex. : ArretThread ou ArreterThread consistera à déterminer si à un moment donné de l'exécution, l'action d'arrêter le thread devra être effectuée ou non
•
Nom commun +
Participe passé ➞ Récupération ou affectation d'un état
Ex. : ThreadArrete consistera à déterminer à un moment donné l'état du Thread
Après, comme toujours, il s'agit d'une convention personnelle et il arrive que, considérant que l'usage de deux variables soit inutile parce que redondantes, je sois contraint de choisir entre l'un ou l'autre type
