winform开发的疑问
我一个winform窗体,一开始加载时就必须执行一段webservice的数据更新,我把这段代码放在load事件里,可是窗体要等到数据更新完再显示,这样就让用户等很久了,我想先让窗体显示一个progressBar,后台在执行更新,更新完再用datagridview显示,可是有想法却不知如何下手,高手多指教!
------解决方案--------------------用多线程!另起一个线程去更新数据!
------解决方案--------------------用多线程的话你在更新数据的时候可能其他控件都加载显示出来了,我觉得不如在构造时显示一个专门的进度条窗口,在读取的过程中改变这个进度条的状态,记得Application.DoEvent() 
 构造完了关掉进度条窗口
------解决方案--------------------A窗体 
 一开始加载时就必须执行一段webservice的数据更新 
 先Hide 
 等待progressBar走完再show出来     
 B窗体 
 窗体显示一个progressBar     
 数据更新完后datagridview怎么显示应该好处理吧?
------解决方案--------------------最好用另外一个窗体才执行更新
------解决方案--------------------可以借用Timer控件,先让窗体显示出来,随出再显示数据,这样更友好.   
  private void PrdForm_Load(object sender, EventArgs e) 
 { 
      // 设置鼠标为沙漏状 
      this.Cursor = Cursors.WaitCursor;   
      // 读取数据 
      timer.Start(); // timer的Interval设为3,界面得用这段时间就可以显示出来了.    
      // 还原鼠标指针状 
      this.Cursor = Cursors.Default;   
 }   
 private void timer_Tick(object sender, EventArgs e) 
 { 
       更新数据方法();   
      // 界面显示完成后,更新数据成功后,就停止. 
       timer.Stop(); 
 }
------解决方案--------------------用多线程,在窗口的load事件中加载控件,加载完后启动数据更新的线程和进度条的显示
------解决方案--------------------如果无法知道进度条时间,就用一个等待界面表示正在更新数据。在load事件中启动更新数据的线程,先显示等待界面,数据更新完后关闭等待界面,同时把当前的界面显示出来
------解决方案--------------------必须用多先程的