White Whale Studio

[WPF] UI 설정시 Dispatcher를 사용한 우선순위 강제로 설정 본문

IT Engineering/.Net (WPF)

[WPF] UI 설정시 Dispatcher를 사용한 우선순위 강제로 설정

glorymind 2016. 1. 13. 11:19
반응형

가끔 C#에서 UI를 설정할 때 ProgressBar를 사용하거나 UI를 동적으로 구성하는 경우에 기존 부모 컨트롤에서 자식컨트롤을 소유하고 있어서 UI 우선도 순위에서 밀림으로 인해 UI의 변경사항이 제대로 적용되지 않는 경우가 있습니다.

이런 경우 Dispatcher를 사용하여 우선순위를 우선으로 하여 필요한 작업을 수행하는 방법을 사용할 때 다음과 같은 코드를 사용합니다.


우선 

using System.Threading; 

    추가 해주셔야 합니다.



Dispatcher.Invoke(new Action(delegate

                {

                    _progressBar.Value = percent;

                    lbl_progress.Content = percent + "/" + 100;


System.Windows.Forms.Application.DoEvents();

                }), new object[0]);


 UI 구성할 때 필요한 함수나 처리를 빨간 색 부분과 같이 넣어주시면 됩니다.

      그리고 보라색으로 표시된 저 부분은 반드시 넣어주셔야 됩니다. 안넣어주면 UI가 실시간 반영이 안됩니다아~

 끝~

반응형
Comments