Problème sur threadExécute et hexécuterequête.

Posté par ecarvin le 2/6/2009 15:54:02
Bonjour à tous.

Voila je vous expose mon problème.

Dans une fenêtre il y a un onglet de 2 volet. Chacun de ces volets possède une table. Chaque table est alimenté par une requête spécifique.

Certaines de ces requêtes (Accès Natif Oracle) sont assez lourde. Donc pour ne pas bloquer les utilisateurs, l'alimentation de ces tables ce fait par le biais de 2 thread différent.

Chacun de ces threads gère 1 requête et l'affichage du résultat dans la table concerné.

La requête 1 doit sortir 6 lignes. Cette requête est exécuté en 4 sec par un requeteur classique.
La requête 2 doit sortir 35000 lignes. Cette requête est exécuter en 45 sec pas un requeteur classique.

Le but de l'utilisation des thread, était pour moi, de séparé les 2 traitements et donc que pendant que la requete 1 alimente la table 1, la requête 2 continu sont travail et l'utilisateur n'a pas besoin d'attendre le chargement de la requête 2 dans la table 2 pour travailler sur la table 1.

Mais voila, problème, le thread 1 semble attendre la fin de l'exécution du HexecuteRequeteSQL du thread 2, car la table 1 se remplis qu'au chargement de la table 2. Je dirais même que le threads 2 bloque tous, car même si les boutons de la fenêtre sont actifs, leur code ne s'éxécute pas...

Donc perte de l'utilité des thread...

Aucun ThreadAttendsSignale n'est déclaré.

Chacun des threads possède un Hconnexion et HdecritConnexion différent.

Précision : Aucun code dans la fenêtre à part sur 1 bouton (ouvre(Fen_toto)), Thread 1 et 2 sont appelé à l'initialisation de la fenêtre. Tester avec SQLconnecte et SQLExec mais même problème.

Quelqu'un à t'il une idée ou à déjà rencontré ce problème?

Merci pour vos réponse.

Tester en V8, et V10.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=6208&post_id=24725