PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → TacheParalleles
TacheParalleles
Started by borisj, Sep., 21 2021 11:35 AM - 2 replies
Registered member
54 messages
Popularité : +1 (1 vote)
Posted on September, 21 2021 - 11:35 AM
Bonjour,

Je rencontre un probleme avec une tâche parallele toute simple.

Le probleme est le même si j'utilise un thread

TANTQUE DateDifference(dDateInfo,DateSys)>0
//soit t = TâcheParalleleexecute(ListeInfos,(dDateInfo))
ThreadExecute(ListeInfos,(dDateInfo))
dDateInfo..Jour += 1
FIN


Mon soucis est le suivant :

La date transmise est utilisee pour pour une requete API REST.
Le résultat de celle-ci est traitee et enregistree dans une table et un des champ de celle-ci est la fameuse date.

A cahque traitement la date est incrementée de 1 jour

Quand je regarde la table je me rend compte qu'il y a eu le plusieurs fois le traitement pour la même date ou que les traiement ont ete fait correctement mais ont enregistre la mauvaise date.

C'est totalement aléatoire. Seuls les 3-4 premières dates sont traites correctement.

Quelqu'un auait-il une idee ?

Merci par avance.
Posted on September, 21 2021 - 3:27 PM
tu fais une boucle qui lance un thread secondaire à chaque tour...

Les thread secondaires s'exécutent en parallèle du principal, en MEME TEMPS...

Donc, soit déplace ta boucle à l'intérieur du thread secondaire (si tu veux que chaque jour soit traité l'un après l'autre), soit donne un nom différent au thread à chaque tour (ajoute la date au nom,, par exemple) si tu veux que toutes les dates soient traité en même temps...

La, avec ton code, tu remplace un thread par celui du tour suivant à chaque tour
Posted on October, 01 2021 - 3:32 PM
dDateInfo est une date <CRITIQUE>

ou voir l'utilisation de sectioncritiquedebut()