¿Por qué Thread.Sleep () congela el formulario?

Trato de experimentar conThread.Sleep(). Creé la aplicación básica de Windows Forms con un botón.

    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         
    }

Cuando hago clic en mi botón, elDoStuff El método funciona bien, pero la GUI se congela y no sucede nada. ¿Alguien puede explicarme por qué?

Respuestas a la pregunta(6)

Su respuesta a la pregunta