PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → thread et ralentissement
thread et ralentissement
Iniciado por Arnaud TRIOUX, set., 09 2005 7:36 PM - 2 respostas
Publicado em setembro, 09 2005 - 7:36 PM
j'ai un timersys qui execute un thread toutes les minutes

ce thread fait appel A 3 procedures assez importantes

pendant l'execution de ce thread, je constate un ralentissement dans mon
appli et meme que certain clique ne sont pris en compte

j'ai mis des multitache(-1) un peu partout mais rien n'y fait

le plus embettant c'est que j'ai une boite outil qui permet de changer mes
pages
et parfois le menu de la boite outil change mais le code associé ne
s'execute pas
donc ma page ne correspond plus au menu de ma boite outil

si quelqu'un a une solution a me donner
Publicado em setembro, 09 2005 - 9:54 PM
attention, quand tu utilises des multitaches avec des TimerSys !!
TimerSys garantit normalement que pls procedures ne se lancent pas en meme
temps. mais quand tu met un mutitache dans la procédure, ca laisse croire
que la procedure est terminée et du coup la suivante se lance quand meme.

la solution : déclarer une var globale et faire le test suivant au debut de
la proc appelée par le timer :

si MonBool = vrai alors
sortir
sinon
MonBool = Vrai
fin
....
....
....

et à la toute fin de la proc tu mets :
MonBool = faux

Comme ca tu t'assures qu'il n'y a tjs qu'une seule instance de la proc qui
se lance à la fois.


"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de
news:432197f2@news.pcsoft.fr...

j'ai un timersys qui execute un thread toutes les minutes

ce thread fait appel A 3 procedures assez importantes

pendant l'execution de ce thread, je constate un ralentissement dans mon
appli et meme que certain clique ne sont pris en compte

j'ai mis des multitache(-1) un peu partout mais rien n'y fait

le plus embettant c'est que j'ai une boite outil qui permet de changer mes
pages
et parfois le menu de la boite outil change mais le code associé ne
s'execute pas
donc ma page ne correspond plus au menu de ma boite outil

si quelqu'un a une solution a me donner

Publicado em novembro, 15 2005 - 4:02 PM
Ton implémentation du multithread me semble risquée.

Il faudrait plutot avoir un premier thread qui lance toute les minutes
ton thread.

Ou méme plus simple,

Un seul thread dans une boucle style TantQue Vrai qui fait dodo une
minute à chaque itération (api sleep).

Surtout, protége bien l'utilisation des ressources que tu manipule en
globale (Section critique, Semaphore ou Signaux).

Good Luck


François C a écrit :
attention, quand tu utilises des multitaches avec des TimerSys !!
TimerSys garantit normalement que pls procedures ne se lancent pas en meme
temps. mais quand tu met un mutitache dans la procédure, ca laisse croire
que la procedure est terminée et du coup la suivante se lance quand meme.

la solution : déclarer une var globale et faire le test suivant au debut de
la proc appelée par le timer :

si MonBool = vrai alors
sortir
sinon
MonBool = Vrai
fin
...
...
...

et à la toute fin de la proc tu mets :
MonBool = faux

Comme ca tu t'assures qu'il n'y a tjs qu'une seule instance de la proc qui
se lance à la fois.


"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de
news:432197f2@news.pcsoft.fr...

j'ai un timersys qui execute un thread toutes les minutes

ce thread fait appel A 3 procedures assez importantes

pendant l'execution de ce thread, je constate un ralentissement dans mon
appli et meme que certain clique ne sont pris en compte

j'ai mis des multitache(-1) un peu partout mais rien n'y fait

le plus embettant c'est que j'ai une boite outil qui permet de changer mes
pages
et parfois le menu de la boite outil change mais le code associé ne
s'execute pas
donc ma page ne correspond plus au menu de ma boite outil

si quelqu'un a une solution a me donner