Cómo actualizar la interfaz de usuario desde tareas secundarias en WinForms

Tengo una pequeña aplicación winforms simple que realiza un proceso de larga ejecución en otro hilo a través de una tarea TPL. Durante este largo proceso de ejecución, me gustaría actualizar la interfaz de usuario (la barra de progreso o algo así). ¿Hay alguna manera de hacer esto sin tener que .ContinueWith ()?

public partial class Form1 : Form
{
    private Task _childTask;

    public Form1()
    {
        InitializeComponent();

        Task.Factory.StartNew(() =>
        {
            // Do some work
            Thread.Sleep(1000);

            // Update the UI
            _childTask.Start();

            // Do more work
            Thread.Sleep(1000);
        });

        _childTask = new Task((antecedent) =>
        {
            Thread.Sleep(2000);
            textBox1.Text = "From child task";
        }, TaskScheduler.FromCurrentSynchronizationContext());


    }
}

Ejecutando este código, obtengo la excepción omnipresente:

La operación entre hilos no es válida: controle 'textBox1' al que se accede desde un hilo que no sea el hilo en el que se cre

Respuestas a la pregunta(4)

Su respuesta a la pregunta