Lancer l'exécution d'un EXE dans un programme VG

cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 18 nov. 2004 à 15:39
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 18 nov. 2004 à 20:04
Bonjour,

J'ai deux programmes A et B qui tournent en parallèle.
-------------------------------------------------------------------------
Avec un Shell le programme A lance le programme B
Le programme B réalise un traitements Itératifs dans un Timer.

Je cherche comment redonner la main au programme A de telle sorte qu'il continue à exécuter les instructions qui sont situées après le Shell.

Merci pour votre support.

6 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 nov. 2004 à 18:06
Je pense que c'est le programme B qui est en cause, il doit prendre toutes les ressources et empêcher le programme A de tourner ...

Daniel
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
18 nov. 2004 à 18:21
Je viens de m'apercevoir qu'entre le Shell et le retour à l'instruction qui suit il faut attendre plus de 10 secondes.

La cause de mon problème vient donc comme tu le dis du programme B.

La solution à mon problème avance. J'ai mis un DoEvents en fin de boucle du programme B mais rien de changé.

Peut être à bientôt si tu as une suggestion à me faire

Merci pour ton support.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 nov. 2004 à 18:24
il vaudrait mieux mettre le DoEvents dans la boucle, et éviter que le programme B prenne plus de temps que l'intervalle du Timer.

Daniel
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
18 nov. 2004 à 18:34
J'ai utilisé le terme de Timer mais en réalité je procède comme
indiqué ci-dessous

"DUREE" est implicitement chargé à 3600 mais peut éventuellement prendre une autre valeur.

tmp = timer
Do While Timer < Tmp + DUREE
-
-
-
DoEvents
Loop

Il est peut-être préférable d'utiliser un vrai Timer ?.....

Merci encore.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 nov. 2004 à 19:53
Heu, il me semble bien que de cette manière, tu boucle pendant 3600 secondes soit une heure.
L'objet Timer, c'est en millisecondes. Mais tu ne peux l'utiliser que pour déclencher des actions régulières, pas pour faire une pause.

Cordialement, CanisLupus
0
cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007
18 nov. 2004 à 20:04
Bonjour,

Mon problème a été solutionné grâce à vous.
Pour vous éviter de relire toutes les notes que nous avons échangés, je vous rappelle le problème:

J'ai deux programmes A et B qui tournent en parallèle.
---------------------------------------------------------
Avec un Shell le programme A lance le programme B qui réalise un traitement Itératif avec un Timer.
Entre l'exécution du Shell et le retour à l'instruction suivante il s'écoulait plus de 10 Secondes.

Comme le programme semblait boucler, j'interrompais brutalement son exécution. Ce que vous m'avez dit est confirmé: après le Shell on revient bien immédiatement à l'instruction qui suit.

Encore grâce à celui qui m'a dit: Ton problème vient de ton programme B qui prend toutes les ressources. C'est exact !

Dans le programme B j'utilisais un Timer "Artificiel"
Tmp = Timer
DUREE = 3600 (Varie en fonction du type de traitement)
Do While Timer < Tmp + DUREEFLASH
-
-
DoEvents
Loop

C'est en remplaçant ce timer artificiel par un vrai Timer que j'ai réglé mon problème.

Merci encore, sans vous, je mettais mon outil à la poubelle.

Merci encore.
0
Rejoignez-nous