WPF使用多线程更新UI界面 涉及资源访问需要使用委托处理

原创 2013年03月18日 12:06:14

界面控件定义:

 

 <Image   VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="ImgCard2"> </Image>

 

 

线程中调用的方法:

  

protected void SetCardInfo(PersonMod personObj)
  {
            try
            {
             string imagePath = @personObj.ImageUrl;

            object[] dd = { imagePath };                

            getImgCardHandler = new GetImgCard(ChangeImg);


            this.ImgCard2.Dispatcher.Invoke(getImgCardHandler, dd);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

            } 

}

委托定义:

 

 private delegate void GetImgCard(string imgurl);

        GetImgCard getImgCardHandler;

        private object lockimg=new object();


 

赋值:

 

private void ChangeImg(string imgurl)
        {
            lock (lockimg)
            {
                BitmapImage images = new BitmapImage(new Uri(imgurl, UriKind.Absolute));
                ImgCard2.Source = images;
            }
        }


 

相关文章推荐

解决卡顿——在WPF中使用多线程更新UI

 解决卡顿——在WPF中使用多线程更新UI 有经验的程序员们都知道:不能在UI线程上进行耗时操作,那样会造成界面卡顿,如下就是一个简单的示例:     public partial ...

<转载>拒绝卡顿——在WPF中使用多线程更新UI

有经验的程序员们都知道:不能在UI线程上进行耗时操作,那样会造成界面卡顿,如下就是一个简单的示例:     public partial class MainWindow : Window     ...

浅析.Net 在 winform及wpf中涉及界面交互的多线程类的封装

我们在开发客户端程序时,经常要用到多线程 而我们知道 , .Net 中从线程安全的考虑,对控件改变的调用要通过Invoke, beginvoke 来进行,这就涉及怎么进行工作线程与界面的互操作...

WPF多线程UI更新——两种方法

WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有...

WPF多线程UI更新——两种方法

WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有...

WPF多线程UI更新

前言   在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对象。)这是很常见的一个错...

关于异步更新UI界面多线程执行后台操作的一些思路整理

有些时候,某些操作会比较耗时间(如:连接一个没有开启的远程数据库),如果这个操作在UI线程上执行的话,就会在返回之前,让界面处于"假死"状态,影响用户体验.因此,从其他线程操作这类的"耗时"操作,是很...

WPF 同一窗口内的多线程 UI(VisualTarget)

WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验。如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程。然而,就不能让...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF使用多线程更新UI界面 涉及资源访问需要使用委托处理
举报原因:
原因补充:

(最多只允许输入30个字)