zoukankan      html  css  js  c++  java
  • winform中如何在多线程中更新UI控件--ListView实时显示执行信息

    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));
                }));            
            }  
    

      

  • 相关阅读:
    1509 -- Glass Beads POJ
    1043: [HAOI2008]下落的圆盘
    面向对象的特性一:封装性
    java的值传递机制
    可变参数的形参方法
    方法的重载
    类及对象
    面向对象
    数组的常用算法问题
    数组的常见异常
  • 原文地址:https://www.cnblogs.com/liangxiarong/p/9732819.html
Copyright © 2011-2022 走看看