J # / C # Mise à jour / Refresh GUI fil
-
28-10-2019 - |
Question
J'ai une fonction qui remplit simplement une barre de progression.
private void FillProgressBar(ProgressBar bar, Color c, int percent)
{
int steps = 10;
bar.set_Value(0);
for (int i = 0; i < percent / steps; i++)
{
System.Threading.Thread.Sleep(100);
bar.set_Value((i+1)*10) + bar.get_Value());
this.Refresh();
}
}
J'Invoquer du fil IUG (filetage pas multi) et son but est de remplir lentement la barre.
Mais il ne semble pas le faire, bien que la valeur soulève.
Toutes les suggestions sur la façon de mettre à jour un contrôle spécifique ou toute la forme? PS:. Comme vous pouvez le voir, This.Refresh () ne fonctionne pas non plus
La solution
Autres conseils
Your current code don't let the main message loop execute and so it'll block all messages including WM_PAINT
ones...
You shouldn't do that, use a thread, use a timer : don't block the UI.
And don't use Application.DoEvents
it's bad programming practice and shouldn't even exists.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow