码迷,mamicode.com
首页 > 其他好文 > 详细

WPF中异步更新UI元素

时间:2014-08-22 00:17:25      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   strong   for   

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 = 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

方法二:

 

实得分

WPF中异步更新UI元素,布布扣,bubuko.com

WPF中异步更新UI元素

标签:style   blog   http   color   os   io   strong   for   

原文地址:http://www.cnblogs.com/leonkao/p/3928347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!