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

2021-06-15 08:06

阅读:369

标签:nta   多线程   控件   nbsp   control   pool   col   信息   如何   

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实时显示执行信息

标签:nta   多线程   控件   nbsp   control   pool   col   信息   如何   

原文地址:https://www.cnblogs.com/liangxiarong/p/9732819.html


评论


亲,登录后才可以留言!