cs_screach
Messages postés3Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 4 juillet 2002
-
3 juil. 2002 à 23:35
cs_screach
Messages postés3Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 4 juillet 2002
-
4 juil. 2002 à 17:46
Bonjour,
Je tente (vainement) de faire une application lançant des fenêtres ayant un traitement indépendant les unes des autres, j'ai bien essayé la fn CreateThread, mais ca plante lamentablement.
En fait, l'idée de départ est un truc tout simple, et ce pourrait être un bon exemple pour bien comprendre l'enjeu : J'ai une procédure principale dont le temps d'exécution est assez lourd (accès BDD, grosse requête, bcp de données) et pendant que la requête s'execute, (+ 1 min des fois) j'aimerai bien avoir une fenêtre qui fait chrono, histoire de montrer à l'utilisateur que tout va bien. De meme, un petit bouton STOP qui interromprait l'exécution serait le bienvenu
Seulement voila, l'exécution est bloquée par l'instruction de lancement de requete (attente d'exécution de la base), donc meme une fenetre avec un timer dedans ne se rafraichit pas d'ou l'idee du multi-threading... qui ne marche pas (enfin, que je ne sais pas utiliser :big) )
Voila, la boucle est infiniement itérée (!), j'ai besoin d'aide, je crois ...
cs_screach
Messages postés3Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 4 juillet 2002 4 juil. 2002 à 17:46
Eh bien, en effet, en posant ce genre de chose un peu partout, on peut contourner le problème, mais je voudrais plutot m'y confronter ;)
Et puis, par exemple, j'ai une instruction (ouverture de curseur SQL (type ADODB.RecordSet) ) qui peut mettre plus d'une minute à s'éxécuter (car les Query sont complexes et lourdes). Donc quand je fais Ma_requete.open, je me retrouve avec une fenêtre qui se rafraichit pas et bloque les évènements: l'utilisateur peut alors penser que le prog est bloqué et risque de bidouiller pour l'arrêter : un petit bouton Cancel serait le minimum, si par exemple on se rend compte en cours d'éxec. que c'est la requête qui est mal fichue
Quoiqu'il en soit, le prob. du multithreading me semble intéressant en lui même ... N'est-ce pas ?