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

Résolu
Signaler
Messages postés
7
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
11 février 2009
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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
A voir également:

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
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
*/
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
5
System.Threading.Thread.Sleep(int milliseconds)
Messages postés
7
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
11 février 2009

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 ?