WPF编程,执行过程中动态更新进度条的一种方法。

 进度条是UI线程中操作的,如果需要在处理多线程的费时程序时通过进度条显示进度,需要用到这种方法,也就是通过非UI线程操作控件。

//方法一   
 private void ProgressBegin()
        {

            Thread thread = new Thread(new ThreadStart(() =>
            {
                for (int i = 0; i <= 100; i++)
                {
                    this.Dispatcher.BeginInvoke((ThreadStart)delegate { this.progressBar1.Value = i; }); //progressBar1是进度条控件的名字。
                    Thread.Sleep(100);
                }

            }));
            thread.Start();
        }
		
//方法二	
		
		
 private delegate void UpdateProgressBarDelegate(System.Windows.DependencyProperty dp, Object value); 
     
private void beginImport()  
{  
   radProgressBar1.Maximum = 1000;
   radProgressBar1.Value = 0;

   UpdateProgressBarDelegate updatePbDelegate = new UpdateProgressBarDelegate(radProgressBar1.SetValue);  
  
 for (int i = 0; i < 1000; i++)  
 {  
    Dispatcher.Invoke(updatePbDelegate, System.Windows.Threading.DispatcherPriority.Background, new object[] { System.Windows.Controls.ProgressBar.ValueProperty,Convert.ToDouble( i + 1) });  
 }  
}


    //ProgressBar 可写成:ProgressBarEdit
	//Convert.ToDouble( i + 1)  可写成:value 

猜你喜欢

转载自blog.csdn.net/qq_43307934/article/details/89208470