博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF中异步更新UI元素
阅读量:4453 次
发布时间:2019-06-07

本文共 809 字,大约阅读时间需要 2 分钟。

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

方法二:

 

实得分

转载于:https://www.cnblogs.com/kelsen/p/3928347.html

你可能感兴趣的文章
JavaScript--DOM总结
查看>>
关于两个服务器数据库之间的数据几种方法实践
查看>>
Laravel LTS 分割 路由文件的最佳方式
查看>>
什么是python?
查看>>
Flat files upload(本地文件数据上载)(二)
查看>>
Java反射机制
查看>>
java并发:原子类之AtomicLong
查看>>
mysql视图初探
查看>>
测试分类
查看>>
找回被丢弃怎么找都找不回来的git中的commit
查看>>
Azure 上 Linux 虚拟机 Mac 地址的持久化
查看>>
2019-8-10 考试总结
查看>>
hdu 4308 Saving Princess claire_(bfs,4级)
查看>>
JAVA学习之工厂方法模式,工厂类用反射功能实现
查看>>
C# Java 3DES加密解密 扩展及修正\0 问题
查看>>
C# ThreadState属性分析
查看>>
C#request 请求响应
查看>>
bzoj3745: [Coci2015]Norma 分治,单调队列
查看>>
HDU 2612 Find a Way
查看>>
如何实时查看mysql当前连接数?
查看>>