调用线程无法访问此对象 因为另一个线程拥有该

.Net技术 码拜 10年前 (2014-12-24) 3073次浏览 0个评论

启动一个线程(WPF应用),更新页面控件时出错“ 调用线程无法访问此对象 ,因为另一个线程拥有该对象”,这个要如何修改?

现在在做一个进度条,在进度条运行时需新建一个线程,在后台任务执行的时候需要修改页面标签的值,
但是修改值的时候出错了。刚开始学习C#,请问下面的程序该如何修改才行?

 public void updateProcess(Label l)
  //.........
  pdh = new ProgressDialogHelper();
  pdh.ShowProgress(() =>
                {
                  
                    foreach (string runjob in runList)
                    {
			//后台任务执行
			l.Content ="加载中";//修改时出错
                        decimal process = (decimal)i / (decimal)runList.LongCount();
                        Console.WriteLine("P:" + p);
                        if (process >= 1)
                        {
                            process = 1;
                        }
                        pdh.SetValue((double) process * 100);
                        pdh.SetMessage("当前进度 :" + process);

                    }
                    pdh.CloseProgressDialog();
                });

class ProgressDialogHelper{
//.....
public void ShowProgress(Action workAction)
        {
            this.Worker = new Thread(new ThreadStart(workAction));
            this.ProDialog = new ProgressDialog();

            Worker.Start();
            ProDialog.ShowDialog();
        }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明调用线程无法访问此对象 因为另一个线程拥有该
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!