2009-09-24 6 views
0

내 응용 프로그램에 대한 진행률 막대를 만들고 싶습니다. 메신저 실행 중입니다. 루프가있는 데이터 격자가있는 자식 폼을 여는 기본 폼이 하나 있습니다. < 30. 루프가 데이터베이스를 쿼리 할 때 약간의 시간이 걸립니다.다른 폼에있는 루프의 Progressbar 값은 무엇입니까?

이 멈춤은 소프트웨어가 멈추는 것처럼 보입니다. 그래서 진행률 표시 줄을 만들어 루프가 얼마나 오랫동안 작동하는지 보여줄 것입니다.

필요한 문제이 문제를 어떻게 해결할 수 있습니까?

을 Form1 = 기본 폼 자식 1 = 데이터 그리드 형태 자식 2 = ProgressBar 구성 형태

내가 보유하고있는 기본 폼을시키는에 = 0 와 자식 1 루프에서 할 정수 (int) 변수 수두를 생각

for (int i, i < 30, i++) 
{ 
    //code for query 
    form1.posX = form1.posX++ 
} 

그런 다음 Child2가 poX를 사용하여 막대를 진행하게하십시오. 올바른 경로입니까? 어떻게 아이들의 값을 기본 폼으로 전달하고 되돌려 놓을 수 있습니까?

+1

{form1.posX = form1.posX ++}이 작동하지 않습니다. {form1.posx ++} 만 사용하거나 {form1.posX = form1.posx + 1} 사용하십시오. – Havenard

답변

2

진행률 표시 줄을 업데이트하는 동안 오랜 시간 작업을 수행하려면 다른 스레드를 사용해야합니다. 이것은 UI 스레드를 고정시키지 않을 것입니다. BackgroundWorker 클래스를 살펴보고 How To Use BackgroundWorker

관련 문제