winform中如何在多线程中更新UI控件--ListView实时显示执行信息
2024-08-27 16:37:50
1、在winform中,所有对UI的操作,都得回到UI线程(主线程)上来,才不会报错
线程间操作无效: 从不是创建控件的线程访问它。
2、在winform中,允许通过Control.invoke对控件进行操作。如下代码:
private void btnTest_Click(object sender, EventArgs e)
{
CheckA();
} private void CheckA()
{
System.Threading.ThreadPool.QueueUserWorkItem(t => {
ShowInfo("检测开始.....");
System.Threading.Thread.Sleep(3000);
ShowInfo("暂停3秒结束.....");
System.Threading.Thread.Sleep(2000);
ShowInfo("暂停2秒结束.....");
System.Threading.Thread.Sleep(1000);
ShowInfo("检测结束");
}); }
private void ShowInfo(string Info)
{
listView1.Invoke(new Action(() =>
{
listView1.Columns[0].Width = listView1.ClientSize.Width;
listView1.Items.Insert(0, new ListViewItem(Info));
}));
}
最新文章
- [转]关于SVN的操作批处理示例
- Atitit  从 RGB 到 HSL 或 HSV 的转换
- WordPress更新服务加快收录
- window.open的小技巧分享
- QT怎样在QTableWidge显示图片
- 看unix高级编程时遇到apue.h找不到的问题
- c++中冒号(:)的作用
- OC语言(五)
- BZOJ2084 [Poi2010]Antisymmetry Manachar
- 一个不错的Node.js进阶学习引导
- php之异常处理
- String类型的特殊之处
- 通过url传递参数如果汉字乱码采用的方法
- IDEA中使用springBoot+gradle构建多模块项目
- HTML学习-2标记标签-2
- leetcode717—1-bit and 2-bit Characters
- JQuery控制radio选中和不选中方法总结
- 20145335郝昊《网络攻防》Exp5 MS08_067漏洞测试
- 【校招面试 之 C/C++】第5题 C++各种构造函数的写法
- CentOS7 64位下MySQL5.7安装与配置(YUM)转