|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| Thread et automatisation de procédure |
| Iniciado por Didier CHAFFAT, 22,jun. 2019 09:23 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 5 mensajes |
|
| Publicado el 22,junio 2019 - 09:23 |
Bonjour à toutes et à tous,
J'ai une fenêtre dans laquelle je dois exécuter une procédure à chaque seconde.
Cette procédure appelée mprcRun() contient 2 procédures internes : une procédure interne pour lire les données dans une base HFSQL et une procédure interne pour mettre à jour l'interface utilisateur :
-----------------------
Procedure mprcRun()
SI ifonctionLectureBaseDeDonnées() ALORS iprcAffichage() FIN
-----------------------
J'ai essayé plusieurs solutions pour exécuter cette procédure mprcRun() chaque seconde. Elles fonctionnent toutes mais j'aimerais connaître vos avis afin d'utiliser celle qui est le plus optimisée :
-----------------------
Solution 1 : à la fin d'initialisation de ma fenêtre, je mets :
TimerSys("mprcRun",1000)
-----------------------
Solution 2 : dans la fênetre "Automatisme de la procédure", je déclare la procédure mprcRun comme "Timer / procédure différée" en cochant "infini" et en mettant l'espace entre chaque appel à 1 seconde.
-----------------------
Solution 3 : dans la fênetre "Automatisme de la procédure", je déclare la procédure mprcRun comme "Thread" en cochant "infini" et en mettant l'espace entre chaque appel à 1 seconde. Je coche également "Avec utilisation de HFSQL : copie de contexte complète.
Le code la procédure mprcRun devient alors :
Procedure mprcRun()
SI ifonctionLectureBaseDeDonnées() ALORS ExécuteThreadPrincipal(iprcAffichage) FIN -----------------------
Quelle est la meilleure solution selon vous ou une autre solution est-elle possible ?
Merci de votre aide. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 24,junio 2019 - 11:52 |
Bonjour Didier,
Vérifier toutes les secondes si un fichier de base HFSQL est modifié n'est pas la façon la plus performante. Il vaut mieux s'abonner au serveur HFSQL qui fera lui même le travail.
Regarde du côté de la fonction HSurveille() Avec cette fonction tu peux lancer automatiquement une procédure selon la ou les action(s) surveillée(s)
C'est comme cela que je fonctionne depuis la version 22 et c'est beaucoup mieux que d'utiliser HVersion().
Eric |
| |
| |
| | | |
|
| | |
| |
| Publicado el 24,junio 2019 - 16:51 |
Bonjour Éric,
Merci beaucoup !
Je vais tester. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|