나는이 질문이 전에 100 번 요청되었지만 내가 읽은 모든 대답은 나를 위해 일하지 않았다는 것을 안다. 그래서 나는 내 운을 시험해보고 다시 물어 보겠습니다.다른 스레드에서 ProgressBar 업데이트
ValueChanged
이벤트에서 메서드를 호출하는 SliderBar
이 있습니다. 이 방법에서는 시간이 걸리는 작업을 수행합니다.이 시간에는 사용자가 "근무중인"ProgressBar
(IsIndeterminate=true
)을 보길 원합니다.
모든 메서드 루프가 완료 될 때까지 ProgressBar
이 (UI에서) 작동하도록 성공하지 못했습니다. 스레드를 시도했습니다 : BackgroundWorker
및 async
작업이 성공했지만 성공하지 못했습니다.
무엇이 잘못 되었나요?
이
은 방법 :private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e){
WorkingBar.IsIndeterminate = true; //change the progressBar
SqlAThread = new Thread(SqlAStart);
SqlAThread.Start();
}
스레드 :
이private void SqlAStart()
{
... //do some stuff
}
doWork 메소드의 디스패처 구문은 사용하고자하는 것입니다. UI 코드를 UI 스레드에 삽입하여 원하는 작업을 UI 스레드에 푸시하고자 할 때, 여기에서하는 것처럼 보이게됩니다. 진행률 막대의 속성을 변경하려면이 구문을 사용하여 진행률 막대도 업데이트하십시오. – JMK
@JMK이 프로 파티는 내가 바꾸고 싶은 것입니다.이 proprty가 "true"일 때 progressBar는 "작동"모드로되어 있습니다 (제 생각에는 ...?). 실제로, 모든 루프가 완료되었을 때만 작동합니다. =/ – Yaron