Bonjour à tous,

J'ai un petit souci avec Thread::Sleep() qui bloque l'exécution de l'instruction StatusLabel->Text ...

Pour expliquer clairement voici un exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
	for (int i = 0; i< 10; i++)
	{
		 StatusLabel->Text= i.ToString();
		 ProgressBar->Value= i;
		 Thread::Sleep(500);
	}
}
Le StatusLabel ne s'affiche pas pendant l'exécution de la boucle mais uniquement à la fin avec la valeur 9 alors que la ProgressBar de son côté progresse bien à chaque incrément de i ..

Pourquoi donc le StatusLabel ne se comporte pas comme la ProgressBar ?

J'ai résolu le problème en remplaçant Thread::Sleep par un timer, mais je trouve ça lourdingue pour un simple StatusLabel

Bonne journée et merci d'avance.