关于窗口重绘的问题(c#)

我用的异步调用来做的,很简单  
  private   void   FormSelect_Load(object   sender,   System.EventArgs   e)  
  {  
      this.DoUpData(); //启动时要处理的事务  
  }  
   
  private   void   DoUpData()  
  {  
  UpDateDelegate   ud=new   UpDateDelegate(this.UpdateData);//使用代理的异步调用避免界面死锁  
  System.AsyncCallback   ac=new   AsyncCallback(this.Callback);  
  //未准备好之前让功能按钮不能用  
                                                        this.label1.Visible=true;  
  this.dateTimePicker1.Enabled=false;  
  this.dateTimePicker2.Enabled=false;  
  this.progressBar1.Value=0;  
  this.progressBar1.Visible=true;  
  this.timer1.Enabled=true;  
  this.button1.Enabled=false;  
  this.button3.Enabled=false;  
  ud.BeginInvoke(ac,null);//开始异步调用处理事务,其实就是多线程  
  }  
  private   delegate   void   UpDateDelegate();  
  private   void   Callback(System.IAsyncResult   ia)//事务处理结束后的回调函数,开启功能按钮  
  {  
  this.label1.Visible=false;  
  this.progressBar1.Visible=false;  
  this.dateTimePicker1.Enabled=true;  
  this.dateTimePicker2.Enabled=true;  
  this.button1.Enabled=true;  
  this.button3.Enabled=true;  
  this.timer1.Enabled=false;  
  }  

引文来源  关于窗口重绘的问题(c#,framework) .NET技术 / .NET Framework – CSDN社区 community.csdn.net