OVH Cloud OVH Cloud

Question bête à propos d'une jauge

11 réponses
Avatar
Enrico Sovar
Bonjour,

Je voudrai gérer un champ jauge en continu pendant toute opération qui
comporte aussi bien des copiages / suppressions de fichiers, diverses
opérations ect.

Pour cela je lance en thread en début de procédure qui permet de remplir à
l'infini une jauge, et de recommencer à 0 lorsqu'elle est remplie.

Seulement, dès qu'une opération style traitement de fichier ( fcopie ect )
ou autre est lancer, la progression de cette jauge s'interromp le temps que
cette opération se termine.

J'ai essayé de changer les priorités, mais rien à faire...

Merci d'avance si quelqu'un une idée ; )

10 réponses

1 2
Avatar
Pierre BOUSQUET
ce n'est pas très logique qu'un thread s'arrête... J'avais réalisé un
programme qui gérait ca mais il était fait avec un timersys().


"Enrico Sovar" a écrit dans le message de
news:433bdb52$0$21699$
Bonjour,

Je voudrai gérer un champ jauge en continu pendant toute opération qui
comporte aussi bien des copiages / suppressions de fichiers, diverses
opérations ect.

Pour cela je lance en thread en début de procédure qui permet de remplir à
l'infini une jauge, et de recommencer à 0 lorsqu'elle est remplie.

Seulement, dès qu'une opération style traitement de fichier ( fcopie ect )
ou autre est lancer, la progression de cette jauge s'interromp le temps


que
cette opération se termine.

J'ai essayé de changer les priorités, mais rien à faire...

Merci d'avance si quelqu'un une idée ; )




Avatar
Enrico Sovar
"Pierre BOUSQUET" a écrit dans le message de
news:433bdf44$0$10545$
ce n'est pas très logique qu'un thread s'arrête... J'avais réalisé un
programme qui gérait ca mais il était fait avec un timersys().





Intéressant.
J'ai essayé via le timersys, et j'ai bien la confirmation que le lancement
des traitements le bloque aussi :

J'ai testé d'ouvrir une boite info() juste après la création du timer et
effectivement la jauge se remplit, seulement dès que j'appuie sur ok et que
les traitement se lancent il se bloque... Et reprend par intermittence,
entre des opérations.
Avatar
Pierre BOUSQUET
je faisais le timersys() dans une fenêtre (qui contenait la jauge)
indépendante de la fenètre qui exécute le code bloquant

"Enrico Sovar" a écrit dans le message de
news:433be2f4$0$21698$

"Pierre BOUSQUET" a écrit dans le message de
news:433bdf44$0$10545$
> ce n'est pas très logique qu'un thread s'arrête... J'avais réalisé un
> programme qui gérait ca mais il était fait avec un timersys().
>
>

Intéressant.
J'ai essayé via le timersys, et j'ai bien la confirmation que le lancement
des traitements le bloque aussi :

J'ai testé d'ouvrir une boite info() juste après la création du timer et
effectivement la jauge se remplit, seulement dès que j'appuie sur ok et


que
les traitement se lancent il se bloque... Et reprend par intermittence,
entre des opérations.




Avatar
deje
Salut,

essayes de forcer le réaffichage de la fenêtre qui contient la jauge, par la
fonction FenRepeint (NomDeLaFenetre) , après chaque mise çà jour de la
jauge.
J'ai eu le même problème sur WD mais aussi sur Access. Cette fonction a
résolu le problème, dans les 2 cas.
Salutations
à +

D.Jupin
Avatar
Enrico Sovar
"deje" a écrit dans le message de
news:433c00d9$0$9937$
Salut,

essayes de forcer le réaffichage de la fenêtre qui contient la jauge, par


la
fonction FenRepeint (NomDeLaFenetre) , après chaque mise çà jour de la
jauge.
J'ai eu le même problème sur WD mais aussi sur Access. Cette fonction a
résolu le problème, dans les 2 cas.
Salutations
à +

D.Jupin






Merci je vais essayer ca ; )
Avatar
Fosset
Donc, si je comprend bien ce n'est pas un problème de thread qui
arrête mais plus un problème d'affichage ?
Avatar
deje
Bonjour,

Oui, apparemment, la mise à jour d'un contrôle dans une fenêtre n'est pas
prioritaire par rapport à du code exécuté en boucle (du moins c'est ce que
j'en ai déduit.) et c'est ce qui m'a amené à utiliser la fonction
FenRepeint( ). Le phénomène ne vient pas de WD, mais de Windows, car j'ai
rencontré le même problème sur d'autres plateformes de développement,
notamment dans Access (problème résolu avec la fonction équivalente;
Repeint( ) ).
Salutations.

à +
D.Jupin
Avatar
© ---- FX ---- ©
Bonjour,

Je voudrai gérer un champ jauge en continu pendant toute opération qui
comporte aussi bien des copiages / suppressions de fichiers, diverses
opérations ect.

Pour cela je lance en thread en début de procédure qui permet de remplir à
l'infini une jauge, et de recommencer à 0 lorsqu'elle est remplie.



Si tu gères ta jauge, comme il semblerait, sans préjuger tu temps total du
traitement, tu peux mettre un gif animé à la place (comme certains
traitement Windows) qui se relancera seule en boucle.

Seulement, dès qu'une opération style traitement de fichier ( fcopie ect )
ou autre est lancer, la progression de cette jauge s'interromp le temps
que
cette opération se termine.



Maintenant te dire si l'affichage se poursuit durant les opérations de
copie, je ne saurais, mais l'essai est facile a faire.

Amitiés.


--
Francis MOREL
http://wdmlist.free.fr
Avatar
Enrico Sovar
"deje" a écrit dans le message de
news:433c9c66$0$30635$
Bonjour,

Oui, apparemment, la mise à jour d'un contrôle dans une fenêtre n'est pas
prioritaire par rapport à du code exécuté en boucle (du moins c'est ce que
j'en ai déduit.) et c'est ce qui m'a amené à utiliser la fonction
FenRepeint( ). Le phénomène ne vient pas de WD, mais de Windows, car j'ai
rencontré le même problème sur d'autres plateformes de développement,
notamment dans Access (problème résolu avec la fonction équivalente;
Repeint( ) ).
Salutations.

à +
D.Jupin





Alors, j'ai essayé fenrepeint et multitacherepeint, cela aussi bien pour le
thread que le timersys, mais rien à faire dès que les opérations s'occupent
de fichiers ( cad décompression zip et copiage / suppression de fichier ) la
jauge gèle... Et reprends dès que les commandes hyperfile reprennent...
Pénible de bloquer sur un truc comme ca.

Pour le gif c'est une bonne idée mais il y a plusieurs jauges sur la
fenêtre, et pour une question d'uniformisation et surtout de format des
jauges je préfère rester avec des jauges programmables.

Merci bien pour votre aide mais je pense que je vais laisser ca de côté et
continuer à faire un truc sale... ( c'est à dire que je gère la jauge avant
et après les traitements de fichiers externes, résultat la jauge bloque
pendant un temps et l'utilisateur ne sait pas si l'application tourne encore
ou pas... )
Avatar
Fosset
Je ne développe pas en windev, mais le principe reste le même.

L'accès aux fichiers est plus lourd que le reste des fonctions, donc
si tu exécutes ton bout de code qui accède aux fichiers dans un
thread, il ne devrait pas (normalement) nuire à l'affichage de ta
jauge.

Entk, c'est une suggestion...
1 2