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