WinForm,在另一个线程中更新Form中的数据
来源:互联网 发布:blct升级数据 编辑:程序博客网 时间:2024/06/05 18:34
Form本身有线程,但对于一些耗时的操作,我们不希望在Form的线程中进行,因为会导致Form线程阻塞,产生假死的现象。
其他线程中操作Form中的控件,总出现“线程间操作无效: 从不是创建控件的线程访问它”,如何解决呢?
很简单,利用委托。
比如:
xForm上有dataGridView1控件,xForm提供updateView()方法,updateView()中需要直接或间接地更新dataGridView,updateView()方法可能会在别的线程中调用。
private delegrate void delegrateUpdateGridView();
private void updateView()
{
if(dataGridView1.InvokeRequired){ //xForm之外的线程调用updateView,则执行if分支
Invoke(new delegrateUpdateGridView(updateGridView)); //委托给xForm线程调用
}
else{
updateGridView(); //如果xForm线程调用updateView,则执行else分支
}
}
private updateGridView() //实现对dataGridView1的更新
{
....更新dataGridView1的代码
}
参考:
https://msdn.microsoft.com/zh-cn/library/zyzhdc6b.aspx
阅读全文
0 0
- WinForm,在另一个线程中更新Form中的数据
- C# 在一个winform中控制另一个winform中的控件
- C# 在一个winform中控制另一个winform中的控件
- 线程中如何更新对话框中的数据
- android在子线程中更新数据
- Winform中怎样在一个窗体中获得另一个窗体中的控件的值?
- 如何在一个对话框中调用另一个对话框中的数据
- SQL Server 中如何用一个表的数据更新另一个表中的数据
- 如何在一个update语句中,用一个表的数据更新另一个表的数据
- mysql如何在一个表中插入数据的同时,更新另一个表的数据?
- 选择数据库中重复的记录,用一个表中的数据更新另一个表
- 快速实现将一个表中数据更新至另一个库中的同结构表
- java中获取另一个线程中的信息
- 在vc6线程中如何更新窗口数据
- adapter数据更新要放在ui线程中
- asynctask方式在UI线程中更新数据显示
- fragment中的头像更改后在另一个fragment中同时更新头像
- 在C# WinForm 中嵌入另一个.EXE程序,详细步骤
- 日常咸鱼记录17/12/13,更新Vmware Tools
- C++ 关于sort
- 2017-12-13 杂记
- Leetcode 448. Find All Numbers Disappeared in an Array
- JavaScript基础
- WinForm,在另一个线程中更新Form中的数据
- 10、变量种类、赋值、脚本参数调用、bash配置文件、算术、数值字符对比
- 泛微e-cology和Oracle无法启动的解决方案
- 1006. 换个格式输出整数 (15)
- 二分查找算法
- TOJ 5266: 三角形相似
- Spring AOP实现原理
- 数据结构实验之排序三:bucket sort
- PHP入门-函数的定义与使用