C# 跨线程访问控件

在做WinForm时,在UI线程之外调用控件会报异常:System.InvalidOperationException:“线程间操作无效: 从不是创建控件“label1”的线程访问它。”

我们只需在跨线程调用控件时增加如下代码:

if (this.InvokeRequired)
{this.Invoke(new Action(() =>{lable1.Text = "Hello World!";}));
}

如下是我的demo

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace test
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void ChangeControl(){if (this.InvokeRequired){this.Invoke(new Action(() =>{lbl_msg.Text = "Hello Task!";}));}}private void btnTask_Click(object sender, EventArgs e){Task.Run(()=> {ChangeControl();});}private void btnThread_Click(object sender, EventArgs e){Thread thread = new Thread(()=>{if (this.InvokeRequired){this.Invoke(new Action(() =>{lbl_msg.Text = "Hello Thread!";}));}});thread.IsBackground = true;thread.Start();}}
}

程序运行结果

C# WinForm跨线程访问UI控件相关推荐

  1. C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)

    概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现"线程间操作无效: 从不是创建控件的线程访问它"的异常.处理跨线程更新Winform UI控件常用 ...

  2. java 线程访问控件_C#多线程与跨线程访问界面控件的方法

    本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问Web ...

  3. C#【委托/事件篇】跨线程访问窗体控件的方法

    文章目录 一.直接调用方法,方法中使用委托[textBox1.InvokeRequired] 二.调用委托,委托进一步关联方法 1.使用委托[最基础的调用方法:委托五步法] 2.使用Action作为委 ...

  4. C#线程操作UI控件

    在写winform程序时候,如果时间长的操作不用线程操作.那么会卡死UI,点击界面就体现为未响应.为此需要对耗时操作用线程处理,比如检验的监听程序就是一个死循环,不停检查文件夹或数据库又没有数据,然后 ...

  5. C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它...

    C# 委托 / 跨线程访问UI /  线程间操作无效: 从不是创建控件"Form1"的线程访问它 网上的代码都比较复杂,还是这个简单 见代码, 简易解决办法: 主窗体代码 usin ...

  6. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

  7. C#跨线程调用窗体控件的问题

    前段时间遇到跨线程调用窗体控件的问题,其实一句话System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;就可以解决,但 ...

  8. 线程访问 DevExpress控件异常时 解决方法

    线程访问 DevExpress控件异常时 解决方法 Control.CheckForIllegalCrossThreadCalls = false; DevExpress.Data.CurrencyD ...

  9. C#-WinForm跨线程修改UI界面

    背景 在我做WinForm开发的过程中,经常会遇到耗时操作或阻塞操作.他们会引发软件的卡顿甚至假死,严重影响软件的使用.因此,这类耗时或阻塞的操作一般都会使用异步的方式去执行,不影响主线程(UI线程) ...

最新文章

  1. spark sql and hive 3g数据测试
  2. 第三方控件DevExpress的TreeList绑定XML文件
  3. 存储基础知识二 主要协议SCSI、FC、iSCSI
  4. Sharepoin学习笔记 —架构系列--02 Sharepoint的处理(Process)与执行模型(Trust Model) 1
  5. 算法导论 思考题12-1
  6. 谈谈android不同尺寸,不同分辨率的布局
  7. securecrt登录linux下载文件,Linux使用SecureCRT上传和下载文件教程
  8. html实现2048小游戏,html+css+js适合前端小白的实战全解(超详细)——2048小游戏(二)...
  9. VC dimension(Vapnik-Chervonenkis dimension)
  10. 卡巴斯基7.0反病毒一年激活码免费领取(官方活动,现已停止)
  11. 微信客户管理SCRM系统SDK
  12. 短期出差北京个人所见所闻所感
  13. html纵向时间轴代码,垂直时间轴HTML
  14. 大恒MER-1070-10GC相机 LINUX环境 QT开发记录
  15. 2021年度训练联盟热身训练赛第八场 自我总结
  16. TSL1.0升级到TSL1.2遇到的问题
  17. 【虚拟仿真】Unity3D中如何实现让3D模型显示在UI前面
  18. 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
  19. 微服务探索:nuoyi
  20. 笔记本购机测试软件大全

热门文章

  1. hdu1232畅通工程(并查集)
  2. 悟空号 量子计算机,悟空号获得世界上最精确的TeV电子宇宙射线能谱
  3. 触发了慢日志告警应该怎么办
  4. drupal笔记之block缓存踩坑
  5. oa人员导入模板_巧用OA系统模板办公,让重复的事情简单做
  6. 使用Window Media Player网页播放器
  7. 如何办理ITSS资质
  8. 比 Xshell 还好用的 SSH 客户端神器!爱了
  9. [ctfshow]入门4
  10. HTML(十二)三种常见布局:三栏式布局 双飞翼布局 圣杯布局