2014-04-18 5 views
1

네트워크 스캐닝 응용 프로그램을하고 있습니다. 응용 프로그램이 정상적으로 작동하며 사용자가 검색을 클릭하여 검색이 완료 될 때까지 진행률을 표시하는 ProgressBar을 추가하려고합니다. enter image description here상태 표시 줄 진행 막대


방법 스캔 작업과 함께 진행 표시 줄을 동기화 :

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";       
} 

지금 나는이 같은 진행률 표시 줄 무언가가있다. 제발 조언.

+1

에서 진행 업데이트를 수행 스캔 작업을 수행하기 위해 백그라운드 스레드를 사용? 진행 상황을 알려주 는가? –

+3

진행률 표시 줄을 업데이트하기 위해 BackgroundWorker를 사용할 수 있습니다. – Max

+1

@MaxMommersteeg 사용하는 핵심 API가 진행 정보를 제공하지 않으면'BackGroundWorker'는 쓸모가 없습니다. –

답변

0

같은 스레드에서 시간이 많이 걸리는 작업을 수행하는 경우 진행 상황을 업데이트하고 Application.DoEvents();으로 전화하십시오.

비동기 작업을 수행하는 경우 ProgressBar를 Control.Invoke 메서드로 업데이트하십시오. 당신이 그 두 의견 사이에서 진행 상황을 알 수없는 경우

1
  • , 당신은

    //scanning operation begins 
    //label changed when scan completed 
    
  • 한 대체가 진행 표시 줄을 보여주는 스캔 작업과 우 이동을 진행 표시 줄을 동기화 할 수 없습니다 스캐닝이 진행 중임을 보여주고 동시에 완료 시점을 알지 못합니다.

  • 은 스캔 할 때 사용하는 API 메인 스레드