WPF如何实现跨线程更新UI控件

WPF如何实现跨线程更新UI控件
1.默认情况下,在Windows应用程序中,.NET Framework不允许在一个线程中直接操作另一个线程中的控件。WinForm中实现跨线程操作控件的两种方法:
<1>关闭线程安全检查

Control.CheckForIllegalCrossThreadCalls = false;
1
<2>使用控件的Invoke方法(或BeginInvoke方法、BackgroundWorker)****

2.WPF中控件没有线程安全检查属性,即无法关闭线程安全检查。在WPF中,是通过委托的方式来实现跨线程的UI界面更新

        //定义委托
        private delegate void DispList2Data(List<int> data);
        //线程调用方法
        private  void Update1Info(List<string> data)
        {
            this.lvPath.Dispatcher.BeginInvoke(new DispList1Data(Update1Action), data);
        }
        //定义委托指向的方法
        private  void Update1Action(List<string> data)
        {
            lvPath.ItemsSource = null;
            lvPath.ItemsSource = data;
        }
 

猜你喜欢

转载自blog.csdn.net/u014090257/article/details/123725603