首页 > 编程语言 >C#中跨线程更新UI简单方法

C#中跨线程更新UI简单方法

时间:2023-07-29 23:46:21浏览次数:35  
标签:string C# Text 线程 text UI

.NET3.5中,C# winform 无法直接在子线程中更新UI组件的属性,会报“更新UI的线程非UI组件的创建线程”的错误,需要用到委托更新。

有两种方式:

方式1:

            string test = "测试...";
                    this.BeginInvoke(
                        (Action)delegate()
                        {
                            this.labelStatus.Text = test;
                            this.buttonStart.Enabled = true;
                            this.buttonFileSelect.Enabled = true;
                            this.textBoxServerIP.ReadOnly = false;
                            this.progressBar.Value = 0;
                            this.labelProgress.Text = "0%";
                        }
                    );

 

方式2:

// 先声明一个委托
delegate void updateLableStatusTextDelegate(string text);

// 实现委托功能
private void updateLableStatusText(string text)
{
    this.labelStatus.Text = text;
}


// 执行委托调用
this.BeginInvoke(new updateLableStatusTextDelegate(updateLableStatusText), "测试...");

 

标签:string,C#,Text,线程,text,UI
From: https://www.cnblogs.com/jsper/p/17590802.html

相关文章

  • ABC312
    T1:Chord模拟代码实现s=input()ifsin'ACE,BDF,CEG,DFA,EGB,FAC,GBD':print('Yes')else:print('No')T2:TaKCode模拟代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)using......
  • LeetCode做题笔记
    LeetCode做题笔记3.无重复字符的最长子串最核心的就是维护一个字符串区间,同时保证其中的每个字符都只出现过一次。最最最暴力的就是枚举可能出现的每个字符串区间,然后确保里边元素不重复,然后找出最长的字符串有多少元素。再进一步的想法就是由小到大的构建这样的字符串。用双指......
  • 三个编程思想:面向对象编程、面向接口编程、面向过程编程【概念解析系列_1】【C# 基础
    〇、前言对于.Net中的编程思想还是十分重要的,也是编码出高效的程序的基础!在使用之前了解其本质,那么用起来就游刃有余。下面来简单对比下三个编程思想,看下它们都是什么,它们之间又有什么关系。一、对象、接口、过程稍等,在介绍主角之前呐,先来了解下它们思想的基础是怎么回事。......
  • Pycharm中c、m、F、f、v、p分别代表的含义
    c代表Class:类m代表Method:类实例方法F代表Function:函数f代表Field:类属性,域v代表Variable:变量p代表Property:python内置函数p代表Parameter:参数<>代表Element:元素Directory:目录Package:包Python中函数(Function)和方法(Method)的区别:与类和实例无绑定关系的function都属于......
  • Anaconda超详细教程202378
    目录Anaconda超详细教程2023/7/8(windows)介绍Anaconda下载地址进入Anaconda官网。官网下载太慢了,推荐下载地址:**点击这里到清华镜像站下载安装详细步骤配置环境变量检查安装是否成功更改conda源(后续安装第三方库可以加快速度)Anaconda超详细教程2023/7/8(windows)介绍Anaconda......
  • C++运算符重载
    1.概念赋予运算符更多的功能。2.内容赋值运算符+-*/%运算符自增自减运算符输出流运算符的重载<<输入流运算符的重载>>函数调用运算符()下标运算符[]成员访问运算符->,*3.赋值运算符这个一般是用已存在的对象赋值给另一个已存在的对象。//如存在Comp......
  • 抽象类 vs 接口【概念解析系列_2】【C# 基础】
    〇、前言抽象类和接口的相似之处还是很多的,但是它们的侧重点不同,本文将简单梳理下。一、简介与示例1.1抽象类抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创......
  • 【PY】pandas 处理 Excel 中错别字修正
    前言今天有友友问起来,如何对Excel进行操作,对里面的内容进行错别字修正,那接下来由博主来为各位读者细细讲解一番;首先想到的是用xlrd去读取Excel里面的内容,不过呢,最新版的xlrd已经不支持.xlsx了,使用xlrd读取.xlsx文件时,会报错:XLRDError:Excelxlsxfile;notsupporte......
  • css 动画无限滚动
    创建一个外层容器(loop-wrap)和一个包含CSS标签的容器(loop)。CSS标签使用tag类样式化,并带有文本"#CSS"。使用@keyframesloop动画规则来实现标签的水平滚动效果。动画从初始位置滚动到左边50%的位置,并持续3秒后无限循环。通过将fade类应用于一个空白的div,在loop-wrap容器上创建了一个......
  • C语言分支与循环(12)--- 练习题
    一.练习题1.给定两个数,求这两个数的最大公约数,如求24与18的最大公约数方法:假设m=24n=181.将24与18进行取模,得到的结果是商1,余数为6,有余数证明并没有被整除2.将18再模6,可以得到商3余0,所以我们可以得到6是我们的最大公约数3.如果声明一个变量r来接收数据,如果r=0则代表n为最大公约数,......