需要在窗体上不停修改  文本框的值。代码如下

for (int i = 0; i < 20; i++)   {
   lblCurrentIndex.Text = @"编号:" + i.ToString();
   Thread.Sleep(1000);
    }

可实际效果是:等全部执行完成后,才显示“编号:19”。这是因为for循环运行在主线程中,而刷新界面使用的就是i主线程是。尽管修改文本框的值有效,但界面没有刷新,等待for循环结束后,主线程才能刷新。

正确的做法:将耗时循环放在另一个线程中执行

var t1 = new Task(() =>
            {
                for (int i = 0; i < 20; i++)
                {
                
                    _syncContext.Post(Ui, i);

Thread.Sleep(1000);
                }

});
  t1.Start();

由于不能再另一个线程对UI进行修改,使用SynchronizationContext完成跨线程UI修改

private readonly SynchronizationContext _syncContext;

public FormPointCheck()
        {
            InitializeComponent();
            _syncContext = SynchronizationContext.Current;
        }
   public void Ui(object i)
        {
            lblCurrentIndex.Text = @"当前点编号:" + i.ToString();
        }

C# UI界面的更新相关推荐

  1. vs+qt 在改完ui界面后在程序中出现找不到成员变量或者ui界面不更新。

    这个现象是vs的bug,在改变完ui界面后会重新生成ui_xxxx.h和moc_xxxx.obj文件.但有的时候会没有重新生成,或者在错误的路径下生成重复的ui_xxxx.h,导致每次用的都是另一个不 ...

  2. element ui 图片上传_游民晚播报:PS5手柄续航情况测试 UI界面概览放出

    各位朋友晚上好,现在为您带来今天的晚间播报.一起来回顾一下今天白天游戏圈内外都有哪些要闻.趣闻. 要闻回顾: 1.PS5 DualSense手柄续航情况 触觉反馈密集游戏更耗电 新闻原文:点击查看 P ...

  3. Android异步处理二:AsynTask介绍和使用AsyncTask异步更新UI界面

    做一下如何同构AsyncTask异步任务来更新UI界面. (1)AsyncTask的介绍 通过上图中的AsyncTask的源码结构图可以看到,主要用于重载的方法是doInBackground(),on ...

  4. QT Creator 使用 design 修改 ui界面编译后界面未更新代码提示

    我的开发环境: 1,VS2008 2,qt-win-opensource-4.7.4-vs2008 3,qt-vs-addin-1.1.9 为了开发方便,我也安装了qt-creator-win-ope ...

  5. 最新UI界面漫画小程序源码,带后台支持流量主,24小时全自动更新!

    前言 今天给大家带来一款漫画小程序源码,带后台支持流量主,24小时自动更新,亲测可用,小程序UI我简单的修改了一下,漫画24小时自动更新,免维护,支持流量主,搭建宣传一波等裂变即可! 安装教程 准备工 ...

  6. 安卓在子线程中实现更新UI界面的三种方法 Handler+Message、runOnUiThread、控件.post()

    1.说明 安卓中UI线程为主线程,更新UI界面必须在主线程中进行,在子线程中实现更新UI界面的三种方法:Handler.RunOnUiThread.控件.post() 2.1 Handler (1)定 ...

  7. cf端游界面更新显示服务器繁忙,【CF】UI界面更新了,那玩家期待已久的经典服务器呢?...

    原标题:[CF]UI界面更新了,那玩家期待已久的经典服务器呢? Hello,大家好,我是你们的灵狐姐,相信小伙伴们都知道新版本更新的所有内容了!目前体验服已经正式上线,相信不久后正服也是马上更新了!本 ...

  8. 解决Python Socket UDP端口侦听线程内更新UI界面卡顿、奔溃的问题

    网络读卡器介绍:WIFI无线网络RFID云读卡器远程网络开关物流网NB-IoT4G刷卡阅读器-淘宝网 (taobao.com) Python使用PyQt5做UI界面,开启线程侦听UDP端口,端口接收到 ...

  9. 在Service中通过WindowManger添加View的方式来把UI界面显示出来

    整体方案 在Service中通过WindowManger添加View的方式来把UI界面显示出来 业务场景 具体场景 IQOO手机,游戏辅助 这种场景能否使用Activity方式来做 使用activit ...

最新文章

  1. Java Collection
  2. MATLAB读取JSON数据(使用JSONlab工具箱)
  3. lombok链式调用_记一次使用 Lombok 翻车造成的事故!
  4. 把Sublime Text 2打造成一个轻量级Python的IDE
  5. 可恶,谁占用了我的80端口?
  6. php %3c%3c%3cxml 报错,代码审计| APPCMS SQL-XSS-CSRF-SHELL
  7. mysql saveorupdate_Mybatis SaveOrUpdate插件
  8. 信息学奥赛一本通(1219:马走日)
  9. 图像算法三:【图像增强--空间域】图像平滑、中值滤波、图像锐化
  10. Linux 命令(84)—— id 命令
  11. 聚簇索引和非聚簇索引的原理
  12. Could not find com.serenegiant:common:4.1.1
  13. Flink 异步IO优化任务
  14. 【毕业设计】深度学习 YOLO 实现车牌识别算法
  15. wps如何只让他显示3级标题_怎么设置一二三级标题
  16. 服务器私有信息,私有服务器
  17. 王道数据结构P40第一题,为什么直接去掉结点不会造成断链?
  18. 简述dijkstra算法原理_理解最短路径——迪杰斯特拉(dijkstra)算法
  19. linux系统安装绿色版mysql
  20. 快速排序、快排的优化 及Java实现

热门文章

  1. Visual Studio插件
  2. css技巧之如何实现ul li边框重合
  3. 回归Dos操作的快感,进入PowerShell世界 (转)
  4. 高通8x12平台开机画面制作工具
  5. 安装RVDS2.2破解版
  6. centos 7 php7.4_索尼小音箱特价!【Aldi】7月7日起 特卖品 及本期特价食品
  7. 10分钟理解CSS3 FlexBox
  8. 字符串中不重复字符出现第一次的位置
  9. cmake编译时遇到的问题解决
  10. 禁用/启用本地连接的dos命令是什么啊?