XAML
界面很简单,只有一个按钮和一个lable元素,要实现点击button时,lable的内容从0开始自动递增。
C#
private void button_Click(object sender, RoutedEventArgs e){ for (int i = 0; i < 100000; 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 = 0; i < 100000; i++) { this.lable_plus.Dispatcher.BeginInvoke( DispatcherPriority.SystemIdle, new NextNumber(this.plus),i); }}
参考 http://msdn.microsoft.com/zh-cn/library/ms741870.aspx
方法二:
实得分