esativar a animação da barra de progresso do .NET ao alterar o valo

Eu percebo que existem outras perguntas sobre SO relacionadas a animações e barras de progresso, mas elas parecem girar em torno de se livrar da animação desenhada em cima da barra de progresso, ou seja. o destaque que passa por ele.

O que eu quero fazer é me livrar da animação que é usada quando eu defino o novo valor da barra de progresso. O problema que tenho agora é que a ação em execução é concluída e a barra de progresso continua a aumentar até a posição máximadepois d a ação foi concluída.

Em outras palavras, se eu definir a propriedade Value da barra de progresso como 50, desejo que ela viaje para a posição intermediária (se o máximo for 100) imediatamente, não construa lentamente a barra de progresso para essa posição, como faz agor

Se houver realmente uma pergunta sobre SO que já lide com isso, basta fechar como duplicada e eu vou excluí-la com prazer, mas não consegui encontrar nenhum

Este foi o que encontrei:Desativando a animação ProgressFor da WinForms, e lida com o destaque animado, e não é disso que estou falando.

Aqui está um simples LINQPad demonstração que mostra o problema:

void Main()
{
    using (var fm = new Form())
    {
        var bt = new Button
        {
            Text = "Start",
            Location = new Point(8, 8),
            Parent = fm,
        };
        var pb = new ProgressBar
        {
            Top = bt.Top + bt.Height + 8,
            Width = fm.ClientRectangle.Width - 16,
            Left = 8,
            Parent = fm
        };

        bt.Click += (s, e) =>
        {
            bt.Enabled = false;
            Thread t = new Thread(new ThreadStart(() =>
            {
                Thread.Sleep(1000);
                bt.BeginInvoke(new Action(() => { pb.Value = 50; }));
                Thread.Sleep(1000);
                bt.BeginInvoke(new Action(() => { pb.Value = 100; }));
                bt.BeginInvoke(new Action(() => { bt.Enabled = true; }));
            }));
            t.Start();
        };
        fm.ShowDialog();
    }
}

Edit 1: Este é o Windows 7, tema do Glass, então sim, aposto que isso é específico para 7 ou possivelmente também para o Vist

Aqui está uma animação GIF que mostra o problema, o projeto acima. Você pode ver que, assim que o botão é ativado, 1 segundo após a marca do meio ter sido definida, a barra de progresso anima até 100%,depois d o botão foi ativado.

Como você pode ver acima, redefinir o botão para ativado e definir a barra de progresso para 100 é feito "ao mesmo tempo". Basicamente, não quero a criação progressiva da barra de progresso, quero que ela salte diretamente para 50% e depois para 100% ao mesmo tempo em que o botão é ativad

Edit 2: Em resposta à resposta de David Heffernan, foi assim que alterei o código acima:

bt.BeginInvoke(new Action(() => { pb.Value = 51; pb.Value = 50; }));
Thread.Sleep(1000);
bt.BeginInvoke(new Action(() => { pb.Maximum = 101; pb.Value = 101;
                                  pb.Maximum = 100; pb.Value = 100; }));

questionAnswers(5)

yourAnswerToTheQuestion