2014-04-18 62 views
1

我在做網絡掃描應用程序。該應用程序工作正常,只是我想添加ProgressBar顯示進度從用戶點擊掃描開始直到掃描完成。狀態條進度條

private void scanClick(object sender, System.EventArgs e) 
{ 
    if (StatusLabel.Text == "Ready") 
    { 
     StatusLabel.Text = "Please wait while processing is done..."; 
    } 
    //scanning operation begins 
    //label changed when scan completed 
    StatusLabel.Text = "scan completed";       
} 

現在我有一個進度條是這樣的:
enter image description here

如何使用掃描作業進度條同步。請指教。

+1

你用什麼API掃描執行的最新進展?這是否會通知您進展情況? –

+3

您可以使用BackgroundWorker來更新您的進度條。 – Max

+1

@MaxMommersteeg如果您使用的核心API沒有提供進度信息,則「BackGroundWorker」無用。 –

回答

0

如果您在同一個線程中執行一些耗時的操作,請更新進度並致電Application.DoEvents();

如果您正在進行異步操作,則使用Control.Invoke方法更新ProgressBar。

1
  • 如果你不知道在這兩個意見的進展,那麼你不能與掃描操作同步你的進度條

    //scanning operation begins 
    //label changed when scan completed 
    
  • 一個替代是顯示進度條向左移動並正確顯示掃描正在進行中,同時不知道何時會完成。

  • 使用後臺線程來執行掃描操作,在主線程