C# 后台线程更新UI控件

/*********************************************************************************
 *                         C# 后台线程更新UI控件
 * 说明:
 *     C#多线程更新UI控件的方法,每次都要找,记录一下,方便检索。
 *
 *                                              2017-10-23 深圳 南山平山村 曾剑锋
 ********************************************************************************/

一、参考文档:
    1. How to update textbox on GUI from another thread [duplicate]
        https://stackoverflow.com/questions/1136399/how-to-update-textbox-on-gui-from-another-thread

二、示例
    1. 代码:
        private void dealProgressValue(int value)
        {
            MethodInvoker action = delegate { dealProgress.Value = value; };
            ShowMessage.BeginInvoke(action);
        }
    2. 说明:
        dealProgress、ShowMessage都是UI控件。

 

时间: 2024-07-28 20:32:11

C# 后台线程更新UI控件的相关文章

温故而知新:WinForm/Silverlight多线程编程中如何更新UI控件的值

单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e){        Thread t = new Thread(new ParameterizedThreadStart(SetTextBoxValue));    //当然也可以用匿名委托写成

C#串口收发数据,子线程更新textbox控件内容,一段时间后,界面卡死,请教问题原因所在

问题描述 1.现象描述:我自己用C#做了一个模拟流量计软件,下位机大概每100ms会发送一些数据(8字节),我的软件接收后,响应一个9字节的数据.数据的接收和发送都在richtextbox中显示出来.我开了一个子线程,这个线程每100ms去更新textbox控件内容,(就是先读取textbox的内容,在此基础上递增一个常量,再显示在textbox中),程序能够正常运行一段时间,然后就出现了界面卡死的现象,串口能够正常收发,richtextbox中的日志数据能够正常打印,但就是主界面死掉了,点什么

跨线程调用窗体控件

本文转载:http://www.csharpwin.com/csharpspace/11279r6763.shtml   执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快速.在 Windows 中进行多线程编程曾经是 C++ 开发人员的专属特权,但是现在,可以使用所有兼容 Microsoft .NET 的语言来编写. 不过Windows 窗体体系结构对线程使用制定了严格的规则.如果只是编写单线程应用程序,则没必要知道这些规则,这是因为单线程的代

C# 多线程动态创建控件并访问由该线程创建的控件

问题描述 RT我在一个线程里面操作文件,有几个文件就创建几个线程.我想在UI上动态的创建几个进度条控件.怎么做?想了半天想不到啥...窝是菜鸟!求各路大神指点一二 解决方案 解决方案二:所有控件都只能有主线程创建,如果使用后台线程创建,时不时会有异常跳出.解决方案三:我用主线程创建,然后根据一定的规律来命名这些控件,然后在另外一个线程里面把处理好的数据和要使用的控件名用委托传回来,然后再在主线程里面找到这个控件并把数据添加到控件里面你觉得这样可以嘛?解决方案四:引用1楼CGabriel的回复:

学习通过Thread+Handler实现非UI线程更新UI组件(转)

  [Android线程机制]    出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity里的UI组件    当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理.所以主线程通常又被叫

IOS学习资源收集--开发UI控件相关

收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件     正文: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 示例:   网址:https://github.com/HeYang123456789/UIView   2.计时相关的自定义UILabel控件 网址:https://github.com/mineschan/MZTim

jsp-Struts中有没有办法在渲染每个UI控件时都执行一段代码

问题描述 Struts中有没有办法在渲染每个UI控件时都执行一段代码 我有这么个需求:希望能通过数据库配置来指定每个页面上的每个UI控件是否最终显示出来.表结构例如: page | component_id | is_display 有什么办法能够加个拦截器之类的东西,在Struts渲染每个UI控件之前能执行这个拦截器,在拦截器里能取到当前被渲染的控件对象,并修改控件对象的属性吗? 我只知道Struts有Interceptor,但貌似只是拦截后台Action的,不知道是不是能处理UI控件. 请各

c# 子线程调用timer控件 我打了断点发现没执行;要怎么才能让他执行呢

问题描述 c# 子线程调用timer控件 我打了断点发现没执行:要怎么才能让他执行呢 c# 子线程调用timer控件 我打了断点发现没执行:要怎么才能让他执行呢 解决方案 不要直接调用UI组件,Thread自己有Timer,定时执行后,通过委托去控制UI

Android线程中设置控件的值提示报错的解决方法_Android

本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andro