Несколько обновлений асинхронного интерфейса в Silverlight

Как выполнить несколько обновлений пользовательского интерфейса из обратного вызова Silverlight?

Например, я хотел бы, чтобы пользователь нажимал кнопку, пользовательский интерфейс вносил изменения, выполнял некоторую работу, а затем вносил другие изменения ... вместо этого пользователь нажимал кнопку, и кажется, что обратный вызов выполняется в фоновом режиме, а затем все UI меняет вспышку на моих глазах.

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";
}

Ответы на вопрос(2)

Ваш ответ на вопрос