XAML
界面很简单,只有一个按钮和一个lable元素,要实现点击button时,lable的内容从0开始自动递增。
<Grid>
<Label Name="lable_plus" Content="0"/>
<Button Content="Button" Click="button_Click" Height="23" Name="button" Width="75" />
</Grid>
C#
private void button_Click(object sender, RoutedEventArgs e)
{
for (int i = ; i < ; i++)
{
lable_plus.Content = i;
}
}
上面的代码执行后会发现,点击按钮并不会看到;lable中数字递增,而是稍等片刻后,直接出现99999。原因在于UI线程被阻塞用以计算循环 i++ 了。
方法一:
private void te_Click(object sender, RoutedEventArgs e)
{
update();
} public delegate void PlusNumberDelegate(int i); private void update()
{
for (int i = ; i < ; i++)
{
this.lable_plus.Dispatcher.BeginInvoke(
DispatcherPriority.SystemIdle,
new NextNumber(this.plus),i);
}
}
参考 http://msdn.microsoft.com/zh-cn/library/ms741870.aspx
方法二:
实得分