을 실행하는 동안 UI 업데이트 나는 다음과 같은 코드를 가지고 :작업
progressBar1.Minimum = 0;
progressBar1.Maximum = Results.Count;
foreach (MyClass cls in Results)
{
progressBar1.Value += 1;
// Go to DB and get large quantity of data
cls.GetHistoryData();
}
내가 뭘하려는 것은 ProgressBar1의가 제대로 업데이트되도록 다른 스레드로 처리를 이동합니다. 진행률 표시 줄에서 Invoke 메서드를 사용할 수 있어야한다는 것을 의미하는 article을 찾았지만 하나가 아닌 것으로 보입니다.
이것은 이상적인 솔루션처럼 보입니다. 불행히도, 그것은 작동하지 않는 것 같습니다. Progress가 클래스 수준 변수로 설정되어야한다고 가정합니다 (그렇지 않으면 인식하지 못합니다).해야 할 일이 있습니까? –
당신의 설정에 달려 있습니다. UserControl/Window에 속성을 추가하고이 게시물과 마찬가지로 바인딩 할 수 있습니다. http://goo.gl/ZMcnp 이상적으로 MVVM을 사용하면 더 쉽게 작업 할 수 있습니다. CurrentProgress 속성을 가진 ProgressDialogViewModel 클래스와 Message 및 Tiltle 속성과 같은 기타 요소에 대한 DataTemplate이 있습니다. DataTemplate에서 이러한 속성에 대해 바인딩합니다. – bitbonk
+1 - 가장 좋은 솔루션입니다. 그러나 "진행"에 대한 종속성 속성을 구현하는 대신 INotifyPropertyChanged를 사용합니다. –