Por que Thread.Sleep () congela o formulário?

Eu tento experimentarThread.Sleep(). Criei o aplicativo Windows Forms básico com um botão.

    private void button1_Click(object sender, EventArgs e)
    {
        Thread thread1 = new Thread(DoStuff);
        thread1.Start();

        for (int i = 0; i < 100000; i++)
        {
            Thread.Sleep(500);
            button1.Text +=".";
        }
    }

    public void DoStuff()
    {
       //DoStuff         
    }

Quando clico no meu botão, oDoStuff O método funciona bem, mas a GUI congela e nada acontece. Alguém pode me explicar o porquê?

questionAnswers(6)

yourAnswerToTheQuestion