Programação WPF, um método de atualizar dinamicamente a barra de progresso durante a execução.

 A barra de progresso é operada no thread de IU. Se você precisar exibir o progresso por meio da barra de progresso ao processar programas demorados de vários threads, será necessário usar este método, ou seja, operar o controle por meio de um thread que não seja de IU .

//方法一   
 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 

 

Acho que você gosta

Origin blog.csdn.net/qq_43307934/article/details/89208470
Recomendado
Clasificación