2012-03-15 3 views
0

오랫동안 실행되기 전에 렌더링되는 Windows 응용 프로그램에서 기다려주십시오. 잠시 기다려주십시오.이 프로세스 중에 "회전"해야하지만 기다릴 수 없습니다. 이 일. 난 당신이 다시 칠해야합니다 어디 선가 읽은 GIF는 frmBuildNotification애니메이션 GIF에서 기다려주십시오

PictureBox 컨트롤에 포함되어

frmChooser chooser = frmChooser.Instance; 
chooser.Url = this.UrlTextBox.Text;     
frmBuildNotification fb = new frmBuildNotification(); 
fb.Show(this); 
fb.Update(); 
Application.DoEvents(); 
chooser.BuildTreeView(); 
fb.Close(); 
this.Hide(); 
chooser.Show(this); 

:

나는 마지막으로 다음 코드를 사용하여 올바르게 표시 할 수있는 형태를 가지고 이미지를 애니메이션화하는 형식이지만, 약간 지루해 보입니까?

+0

스레드는 한 번에 하나만 할 수 있습니다. treeview를 만들 수없고 GIF를 애니메이션으로 유지할 수도 없습니다. BackgroundWorker를 사용하여 데이터를 미리 준비하십시오. 또는 시작 화면을 사용하십시오. –

답변

1

DoEvents 메시지 펌프를 계속 유지해야하며 다른 스레드에 알림 양식을 보내면 도움이됩니다. 이것을 시도하십시오 :

 bool done = false; 
     frmBuildNotification fb = null; 
     ThreadPool.QueueUserWorkItem((x) => 
     { 
      using (fb = new frmBuildNotification()) 
      { 
       fb.Show(); 
       while (!done) 
        Application.DoEvents(); 
       fb.Close(); 
      } 
     }); 
     frmChooser chooser = frmChooser.Instance; 
     chooser.Url = this.UrlTextBox.Text; 
     chooser.BuildTreeView(); 
     done = true; 
     this.Hide(); 
     chooser.Show(this); 
관련 문제