wpf 多线程绑定控件

        private void cboWebsites_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ...

            object url = CollectTools.ToListUrl(cboNavigation.SelectedValue.ToString(), page);
            Thread getMovie = new Thread(GetMovies);
            getMovie.Start(url);
        }
        //多线程获取数据
        delegate void DELBindListView(List<Movie> movies);
        private void GetMovies(object url)
        {
            List<Movie> movies;
            if (url is object[])
            {
                object[] objs = url as object[];
                movies = website.CollectSearchPage(objs[0].ToString(), objs[1], objs[2]);
            }
            else
            {
                movies = website.CollectListPage(url.ToString());
            }
            if (!this.Dispatcher.CheckAccess())
            {
                this.Dispatcher.Invoke(new DELBindListView(BindListView),movies);
            }
            else
            {
                BindListView(movies);
            }
        }
        //绑定控件
        private void BindListView(List<Movie> movies)
        {
            MList = movies;
            listViewMovies.ItemsSource = MList;
            ...

        }

原文地址:https://www.cnblogs.com/wangchunming/p/2509191.html