PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → fSurveilleRépertoire / service windows / thread
fSurveilleRépertoire / service windows / thread
Débuté par STEPHANE07300, 13 mai 2016 11:14 - 2 réponses
Membre enregistré
1 message
Posté le 13 mai 2016 - 11:14
Bonjour,

Je rencontre un problème de fonctionnement d'un petit service Windows développé avec WD19 et aurait besoin de l'expérience de chacun.
Ce service est censé créer un fichier JPEG à partir de tout fichier PDF modifié dans un répertoire donné. Lorsque je copie plusieurs fichiers PDF dans le répertoire surveillé, tous les fichiers ne sont pas toujours traités et la surveillance de répertoire semble même s'arrêter. Le problème semble assez aléatoire. Je ne suis pas arrivé à reproduire ce cas lors de modification ou copie de fichiers unitaires.

Voici le détail des principales lignes de code:

"fSurveilleRépertoire" lancé dans la procédure d'initialisation du service Windows avec appel d'une procédure globale "TraiteModificationRepAppel".
ThreadMode(threadSectionCritique) lancé dans cette même procédure d'init.

PROCEDURE TraiteModificationRepAppel(sNomRep, sNomFichier, nAction)
Threadname est une chaîne
Threadname = sNomFichier
SI ThreadEtat(Threadname) = threadInexistant ALORS
ThreadExécute(Threadname, threadAttendDémarrage, TraiteModificationRep, sNomRep, sNomFichier, nAction)
FIN

PROCEDURE TraiteModificationRep(sNomRep, sNomFichier, nAction)
SectionCritiqueDébut("Traite")
// N lignes de traitement des modifications de fichiers PDF pour les convertir en JPEG
SELON nAction
CAS fsModificationFichier :
sRacineFichier = Gauche(sNomFichier, Taille(sNomFichier) - 3)
imgMyPDF = dChargeImage(sNomRep + "\" + sNomFichier, imgConvertir)
SI imgMyPDF..Valide = Vrai ALORS
ResSauvegarde = dSauveImageJPEG(imgMyPDF, sTargetFileDir2 + "\" + sRacineFichier + "jpg")
FIN
ServiceTemporise(10)
FIN

SectionCritiqueFin("Traite")

A noter, j'ai essayé les alternatives suivantes, sans succès :
PROCEDURE TraiteModificationRepAppel(sNomRep, sNomFichier, nAction)
ExécuteThreadPrincipal(TraiteModificationRep,sNomRep, sNomFichier, nAction)

et:
Appel direct à la procédure TraiteModificationRep en paramétrant l'automatisme de la procédure avec l'option "Exécution en tâche de fond (Thread)".


Merci par avance à chaque contributeur.
Membre enregistré
26 messages
Posté le 23 mai 2023 - 13:52
Bonjour ,
Même problème en 2023
Y'a t'il des propositions svp
Membre enregistré
287 messages
Popularité : +51 (79 votes)
Posté le 25 mai 2023 - 18:28
@Monsieur MECHI la machine qui surveille est en windows 11 ?

--
#DKR