Fonction qui permet de mettre un temps de latence entre deux instructions

Résolu
joker91170 Messages postés 7 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 11 février 2009 - 12 janv. 2009 à 17:32
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 17 janv. 2009 à 22:04
Bonjour, je cherche une fonction qui permet de mettre un temps de latence entre deux instructions.

en clair ...instruction 1 ;
            (temps de latence )
            instructions 2;

merci d'avance

3 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
17 janv. 2009 à 22:04
Salut,

Ton code est executé dans le thread principal, celui qui est en charge du GUI.
Tant que tu es dans la méthode btn_Compter_Click (résultant de la réception de messages correspondant au clic au dessus du bouton) les autres messages ne sont pas traités, ce qui inclus les messages demandant aux contrôles de se redessiner, ce qui inclus bien évidemment le TextBox.
Dans le cas présent le plus simple est de regarder du côté de la méthode Application.DoEvents, mais il sera peut être aussi intéressant de commencer à regarder du côté de la programmation multi-thread.

/*
coq
MVP Visual C#
CoqBlog
*/
3
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
12 janv. 2009 à 17:44
System.Threading.Thread.Sleep(int milliseconds)
0
joker91170 Messages postés 7 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 11 février 2009
13 janv. 2009 à 15:34
j'ai essayé la fonction en la testant sur ce petit code :

private
void btn_Compter_Click(
object sender,
EventArgs e){
Affichage "1";txb_Affichage.Text Affichage;

System.Threading.
Thread.Sleep(1000 );Affichage "2";txb_Affichage.Text Affichage;

System.Threading.
Thread.Sleep(1000);Affichage "3";txb_Affichage.Text Affichage;

}

finalement quand j'appuie su le bouton Compter, il m'affiche seulement "3" au bout de quelques secondes, or je souhaite afficher "1", puis après 1 seconde, "2", puis après une seconde, "3" .
je précise que je travaille sur windows studio 2008 en c# .

Ou-est mon erreur ? Est-ce que j'ai mal compris le but de la fonction ?
0