winform中如何在多线程中更新UI控件--ListView实时显示执行信息

Posted liangxiarong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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));
            }));            
        }  

  

 

以上是关于winform中如何在多线程中更新UI控件--ListView实时显示执行信息的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform 跨线程更新UI控件常用方法汇总

Winform 跨线程更新UI控件常用方法汇总

富客户端 wpf, Winform 多线程更新UI控件

C# Winform 跨线程更新UI控件常用方法总结(转)

Winform跨线程更新UI控件

Winform跨线程更新UI控件