title: ProgressBar updates in blocked UI thread
body: <p>Why does the ProgressBar update in theoretically blocked UI thread? </p>
  
  <p>In simple app I have a ProgressBar and a Label. I run a time-consuming method in UI thread which tries to update the ProgressBar and the label. This is <em>not</em> supposed to work, because of blocked UI thread. But the ProgressBar is updating! </p>
  
  <p>Until I do anything on the form and it freezes, the ProgressBar updates (the label does not). </p>
  
  <p>Why is that?</p>
  
  <p>Example code (put a Button, a ProgressBar and a Label on form):</p>
  
  <pre><code>private void button1_Click(object sender, EventArgs e)
  {
      while (true)
      {
          progressBar1.Value += 1;
          label1.Text += "1";
          Thread.Sleep(100);
      }
  }
  </code></pre>
  
  <p>ProgressBar is updating, Label is not. My question <em>is not</em> how to make label update aswell, but why ProgressBar <em>is</em> updating. I DO know about Threads, DoEvents, async/await and that is not the answer.</p>