2012-12-20 6 views
0

몇 가지 조언이 필요합니다. 나는 수행 할 몇 가지 기능이있는 작은 응용 프로그램을 만들고 있습니다. 각 기능의 진행 상황을 보여주고 싶습니다. 따라서 진행률 표시 줄을 사용하고 싶습니다. Google 검색 후 진행률 표시 줄에 백그라운드 작업자 스레드를 사용하는 것이 좋습니다. 구현하려는 기능은 다음과 같습니다.배경 작업자 스레드 진행률 막대

1) 값 X를 만듭니다.
2) Y를 생성하고 flashdrive에 쓰기. 또한 Y를 사용하여 X를 암호화하십시오. 결과를 데이터베이스에 다시 저장하십시오.

어떻게 진행해야합니까? 하나의 배경 작업자 스레드에서 모든 작업을 수행합니까? 또는 db 프로세스에 다른 백그라운드 작업자 스레드를 사용 하시겠습니까?

+0

두 개 이상의 다른 백그라운드 스레드를 사용하는 이유는 무엇입니까? 당신의 프로세스는 평행하지 않을 수 있습니까? (나는 u가 암호화되지 않고 y가 생성되고 y가 생성되기 전에 동일한 결과를 데이터베이스에 저장함). –

+0

백그라운드 작업자 내에서 모든 작업을 수행 할 수 있지만 여러 가지 방법으로 작업을 분할 할 수 있습니다. –

+0

어떻게 답변을 수락합니까? – coffeeak

답변

2

그냥 진행률 표시 줄 (및 업데이트) 작업자 스레드를 만드는 것이 좋습니다. 이 진행 표시 줄은 정적 전역 변수에서 값을 가져와야하며 응용 프로그램에서 원하는 위치에 변수를 설정해야합니다. 이러한 변수는 프로세스 항목 또는 완료된 백분율 또는 프로세스를 나타내는 정수 일뿐입니다. 예를 들어 X와 Y 각각에 대해 개별 스레드가있는 경우 각 스레드는 자체 처리 중에 전역 정적 변수를 설정합니다. 진행률 표시 줄 스레드는 진행률 표시 줄에 해당 값을 설정합니다.

2

Bart Teunissen (질문 주석 참조)과 마찬가지로 BackgroundWorker을 사용합니다. ReportProgress-method를 사용하여 ProgressBar을 업데이트 할 수 있습니다. 그러나 Windows Forms 응용 프로그램을 개발하는 경우 UI 스레드가 아니기 때문에 ProgressBar을 직접 업데이트 할 수 없습니다.