网页学习体会

  • 首页
  • 个人博客
您的位置: 首页  >  IT文章  >  WinForm中在非UI线程更改控件值的办法

WinForm中在非UI线程更改控件值的办法

分类: IT文章 • 2025-02-02 13:28:37

从非UI线程调用UI控件赋值、或进行其他更新UI的操作的话,会出现异常:

System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”的线程访问它。”

解决办法:

原来的

xxx.Text="Test";

换成

xxx.BeginInvoke(new Action(()=>{xxx.Text="Test"}));

使用BeginInvoke解决。

参考:Control的Invoke和BeginInvoke 是相对于支线线程(因为一般在支线线程中调用,用来更新主线程ui)Invoke立即插入主线程中执行,而BeginInvoke 要等主线程结束才执行

c# Invoke和BeginInvoke 区别

相关推荐

  • WinForm中在非UI线程更改控件值的办法
  • C# winform开发中,非UI线程修改控件属性引发错误的有关问题
  • 关于在非UI线程中更新UI控件不会crash的有关问题
  • WinForm/Silverlight多线程编程中怎么更新UI控件的值
  • c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法
  • WinForm/Silverlight多线程编程中如何更新UI控件的值
  • python -使用pytesseract识别文字时遇到的问题
  • Filter、Listener
    网站免责声明 网站地图 最新文章 用户隐私 版权申明
本站所有数据收集于网络,如果侵犯到您的权益,请联系网站进行下架处理。   

Copyright © 2018-2021   Powered By 网页学习体会    备案号:   粤ICP备20002247号