c#使用MethodInvoker解决跨线程访问控件
c#使用MethodInvoker解决跨线程访问控件
使用MethodInvoker即可解决:
原代码:
private void btnOK_Click(object sender, EventArgs e)
{
tslInfo.Text = "请稍候...";
Thread td = new Thread(new ThreadStart(run));
td.Start();
}
/// <summary>
/// 线程方法
/// </summary>
private void run()
{
this.tslInfo.Text = "就绪";
}
修改后:
private void btnOK_Click(object sender, EventArgs e)
{
tslInfo.Text = "请稍候...";
Thread td = new Thread(new ThreadStart(threadRun));
td.Start();
}
/// <summary>
/// 原线程方法
/// </summary>
private void run()
{
this.tslInfo.Text = "就绪";
}
/// <summary>
/// 线程方法
/// </summary>
private void threadRun()
{
MethodInvoker In = new MethodInvoker(run);
this.BeginInvoke(In);
}
c#使用MethodInvoker解决跨线程访问控件相关推荐
- c# winform InvokeRequired 解决跨线程访问控件
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它. Windows 窗体中 ...
- winform使用多线程时跨线程访问控件
之前写winform用多线程,在子线程里访问窗体控件需要用委托,由于委托使用不熟练,在网上找的各种方法都觉得太复杂看不懂,后来发现一种写法如下: if (pictureBox1.InvokeRequi ...
- C#中跨线程访问控件问题解决方案
net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,推荐的解决方法是采用代理,用代理方法来间接操作不是同一线程创建的控件. 第二种方法是禁止编译器对跨线程访问作检查,可以实现访问,但是出不出 ...
- VS2005中,C#中跨线程访问控件问题解决方案
最近我在做一个项目,遇到了跨线程要去访问页面控件.但是总是提示出错,不能在其它线程中修改创建控件的线程的控件的值,后来采用了匿名代理,结果很轻松地解决了.解决过程如下: 首先在窗体上,创建一个list ...
- 跨线程操作无效:从创建该线程的线程以外的线程访问控件
我有一个场景. (Windows窗体,C#.. NET) 有一个主窗体可以承载一些用户控件. 用户控件执行一些繁重的数据操作,因此,如果我直接调用UserControl_Load方法,则UI在加载方法 ...
- 多线程总结之旅(12):跨线程调用控件的几种方式
本来是写完线程池就结束多线程总结之旅系列的,但是想想平时在项目中用到线程仅仅不够的,为什么这么说呢?举个例子:我们有一个函数,它的功能就是加载数据,然后绑定到datagridview.现在我们开启一个 ...
- WinForm中新开一个线程操作窗体上的控件(跨线程操作控件)GOOD
http://www.cnblogs.com/joey0210/p/3450379.html 最近在做一个winform的小软件(抢票的...).登录窗体要从远程web页面获取一些数据,为了不阻塞登录 ...
- c#跨线程操作控件(有UI操作)|及多线程操作
仅记录(好多大佬都会): 跨线程操作UI控件 ※在.NET2.0之后为了线程之间的安全,不允许跨线程操作控件,最简单的解决办法是禁止检查,但一般不猜用此方法,会造成各线程之间的混乱,可用作临时调试使用 ...
- C# 跨线程调用控件
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应. 同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法 阅读目录 线程间操作无效 第一种办法:禁 ...
最新文章
- 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )
- cv2.putText 文字换行('\n')无法解析换行
- java使用不存在的字符串_jpa – java.lang.IllegalArgumentException:您试图使用查询字符串中不存在的字符串名称设置参数值...
- CF1192B Dynamic Diameter(LCT)
- 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
- 邮箱附件、QQ、微信等社交工具大文件传输解决方案
- zz 聊聊并发(二)
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...
- 【Java编译】含package的类文件编译
- 学习Java好书及视频推荐
- 通过图片url 获取图片file对象
- 1000+份计算机paper,卡耐基梅隆大学,芝加哥大学,facebook,google,微软,twitter等大牛一作,持续更新中...
- 计算机主机频率单位,计算机常见计量单位解析
- w10运行游戏计算机中丢失xinput1-3.dll,WIN10启动游戏由于找不到xinput13dll无法运行如何修复...
- vuerouter4报错:Discarded invalid param(s) “name“, “age“ when navigating.
- 修改苹果自带地图中的路线颜色
- nginx部署、配置优化
- 关闭搜狐微门户弹窗终极方法
- 数据库管理系统的层次结构--语言处理层
- 2018 OpenInfra Days China大咖来袭——开源,我们是认真的
热门文章
- linux ehci hcd之qh_urb_transaction()分析(二)
- android点击软键盘外面的区域关闭软键盘解决办法
- linux服务器time wait,Linux服务器TIME_WAIT进程的解决与原因
- Zabbix自定义监控tcp的ESTABLISHED状态的数量
- PDF编辑技巧4:删除水印、编辑图片和文字
- tomcat principle
- C++ list用法详解
- HotSpot VM
- 易览 v1.51 绿色
- 利用opencv结合mfc实现识别圆形标记点并计算多个圆形标记点的三维坐标,拟合平面并计算法向量