Comportement different d'une fonction

Signaler
-
 Utilisateur anonyme -
Bonjour,



Je suis vraiment depasse par la reaction de mon programme, j'appelle
une meme fonction a deux endroits differents et elle reagit legerement
differemment, explications :



La fonction Start() lance un timer, cette fonction est appellee apres
le clic sur un bouton, de cette facon, aucun probleme. La fonction est
aussi appelle a une heure precise mais la, le timer ne se lance pas
SAUF si j'affiche une message box juste apres mais dans ce cas, le
timer s'arrete lorsque je ferme la message box.



Je suis vraiment dans le flou, pourquoi cette fonction reagit de deux
manieres differentes ? Je ne pense pas qu'il s'agisse d'un oubli dans
mon code puisqu'il s'agit du meme dans les deux cas. Est ce qu'un
probleme similaire est deja arrive a quelqu'un ? Une idee sur l'origine
de la chose ?



Merci d'avance.

2 réponses

Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
si tu peux nous donner un peu de code comme ta methode et les autres methodes où tu l'appel ?

++

C'est un peu complique a expliquer mais voici a peu pres ce que j'ai fait :



A un moment definit par l'utilisateur, on lance un evenement de cette facon :



StartSpecific.OnTrigger += new EventScheduler.Invoke(StartRecord);



Start record est une juste une fonction qui en appelle une autre :



private void StartRecord (string scheduleName)

{

Start();

}



La fonction Start lance l'enregistrement de la video en fonction des
parametres utilisateurs, il peut aussi etre lance lors du clic sur un
bouton, dans ce dernier cas, il n'y a aucun probleme, voici juste le
code dont il est question :



public void Start ()

{

Main main = (Main) this.Owner;

main.CreateAVI(true);

}



La fonction create AVI enregistre des images a une frequence precise (a
l'aide d'un timer) et, a la fin, les colle ensemble pour en faire une
video. C'est le time qui prend les images qui se lance sans probleme
lors du clic sur le bouton mais qui ne se lance QUE si je mets une
message box apres son appel, si la fonction Start a ete lancee a partir
de l'evenement. Le lancement du timer se fait ainsi (tout simple) :



// Enabled timer to begin recording

timerVideo1.Enabled = true;

// Pour que le timer se lance vraiment, il faut rajouter la ligne suivante

MessageBox.Show("Ne pas quitter cette message box sinon le timer s'arrete, mais pourquoi ?");



Si cela peut vous permettre de m'aider...

Je vous serai tres reconnaissant de toute l'aide que vous pourrez m'apporter.