Várias atualizações de interface assíncrona no Silverlight

Como executar várias atualizações da interface do usuário a partir de um retorno de chamada do Silverligh

Por exemplo, eu gostaria que o usuário clique em um botão, faça com que a interface do usuário faça uma alteração, faça algum trabalho e faça outra alteração ... em vez disso, o usuário clica no botão e o retorno de chamada parece ser executado em segundo plano e, em seguida, todas as alterações na interface piscam diante dos meus olhos.

MainPage.xaml:

<Grid x:Name="LayoutRoot" Background="White" >
<TextBlock Height="23" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top"/>
<Button Click="button1_Click" Content="Button" Height="23" Name="button1" Width="75"  />
</Grid>

MainPage.xaml.cs:

private void button1_Click(object sender, RoutedEventArgs e)
{
    textBlock1.Text = "1";
    // also tried Thread.Sleep(5000);
    Dispatcher.BeginInvoke(() => Thread.Sleep(5000));
    textBlock1.Text = "2";
}

questionAnswers(4)

yourAnswerToTheQuestion