This is a simple code that I have written:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "first";
Thread.Sleep(1000);
label1.Text = "second";
}
But the label never displays ‘first’. I checked using break point and the statement label1.text=”first” gets executed but does not display ‘first’ in label, only ‘second’ is displayed.
Why is this so?
That is because you let the main thread sleep. Therefore it is unable to paint the new text onto the label.
You can ‘force’ the handling of the (paint) events in queue by using:
However then please read this question ‘Use of Application.DoEvents()’