KOd nie wykonuje się po kolei

0

Witam serdecznie
Moim problemem jest kod wykonujący się nie pokolei:

private void button6_Click(object sender, EventArgs e)
{
if(radioButton1.Checked)
{

                label3.Visible = false;
                label4.Visible = true;
                radioButton1.Visible = false;
                radioButton2.Visible = false;
                button6.Text = null;
                string tmp;
            
            {
                for (int i = 5; i > 0; i--)

                {
                    tmp = i.ToString();
                    label5.Text = tmp;
                    label5.Visible = true;
                    System.Threading.Thread.Sleep(1000);
                }
                System.Threading.Thread.Sleep(1000);
                label5.Text = "START!";
            }
        }
    }
Faktyczna kolejność wykonywania to wszystkie polecenia zmieniajace widocznosć na false, potem pętla, a na końcu zmieniające na true.
Debugger nie przeskakuje, ewidentnie przy najechaniu na label4 nie wykonał polecenia, podobnie przy innych. Co może być problemem? Jakieś sugestie? Jestem nowicjuszem w C# i miał to być program odliczający od 5 w dół.
3

Blokujesz główny wątek GUI, uniemożliwiając odświeżanie kontrolek.
Spróbuj dodać Application.DoEvents(); przed Sleep, albo odpalaj ten kod w innym wątku (pamiętając o synchronizacji).

0

Application.Doevents() zadziało, wielkie dzięki :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1