PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD25] Procédure automatique ne se relance pas
[WD25] Procédure automatique ne se relance pas
Débuté par Ramirez22, 12 aoû. 2022 15:53 - 1 réponse
Membre enregistré
60 messages
Popularité : +2 (2 votes)
Posté le 12 août 2022 - 15:53
Bonjour.

Sans doute une erreur de ma part, mais je ne vois pas où.
Je développe un service Windows qui réalise foncièrement 2 choses:
- interrogation permanente d'une interface réseau en socket TCP
- fonction de mise à jour toutes les 10 secondes

J'ai donc créé une procédure (globale) automatique paramétrée en timer infini avec espacement de 10 secondes entre chaque appel.
J'ai appelé cette procédure dans le code d'initialisation de mon service.

Et mon service ne s'occupe que de l'interrogation en boucle de l'interface.

lors du premier cycle, tout se passe bien :
- initialisation du service
- lancement de la procédure
- déroulement cyclique du code du service
- et ... c'est tout. Pas de lancement de la procédure auto au bout des 10 secondes.

Je me suis dit "j'ai du programmer par erreur un FinAutomatismeProcédure", mais non, nul part dans le projet entier.

Et là, je sèche.
Est-ce que parce que je ne suis plus dans la partie du code qui appel la procédure elle est "tuée" ? Parce que si c'est ça, l'intérêt de ces procédures est pour le moins limité (enfin, de mon point de vue)
J'en fait appel à vous.

Merci de vos lumières, (s'il y en a :D)
Message modifié, 12 août 2022 - 16:16
Membre enregistré
60 messages
Popularité : +2 (2 votes)
Posté le 12 août 2022 - 16:44
Bon, je vais plus ou moins me répondre à moi-même.

A priori, les fonctions timer sont à éviter dans les services.
J'imagine que les procédures auto sont une automatisation de l'utilisation des timers, d'où le problème que je rencontre.

J'ai donc modifié mon fusil d'épaule : création d'un chrono et vérification de sa valeur à chaque cycle du service. S'il dépasse 10 secondes, je lance la procédure et remet le chrono à 0.

Et ça marche suffisamment bien comme ça pour moi ;)