2017-12-21 5 views
6

WPF 응용 프로그램과 관련하여 DispatcherPriority 열거 형 값의 각각의 정확한 의미에 대한 문서가 있습니까?WPF의 DispatcherPriority

특히, Background/ContextIdle/ApplicationIdle 사이에 실제적인 차이가 있습니까? 나는 내 코드의 여러 부분에서이 각각을 사용하여 하나의 가치를 표준화하고 싶다.

일반적인 용도는 데이터 바인딩 된 TreeView 컨트롤에 있습니다. (ViewModel에서) 항목 을 선택할 때 ViewModel에서 모든 부모 항목을 다시 확장 한 다음 실제로 선택한 속성을 설정하기 전에 View에서 완전히 렌더링되기를 기다리고 싶습니다.

+0

좋은 질문이지만 '그냥 선택하십시오'라는 대답은 충분한 답변 일 수 있습니다. –

+0

나는 응용 프로그램 유휴가 다른 두 개에서 조금 지연 될 수 있다고 생각합니다. 어쨌든 당신이 필요로하는 것을하는 가장 우선 순위가 높은 수업을 선택하고, 당신이 정말로 조심하지 않으면 응용 프로그램이 불안정해질 수 있기 때문에 정말로이 방법을 파견해야 하는지를 고려하십시오. –

+1

'Background'가 될 것이고, 당신이하고 싶은 것을 가장 잘 표현할 수도 있습니다. 즉, 백그라운드에서 뭔가를 실행하십시오. 즉, * DispatcherPriority의 발생을 제거한 후에 * my * 코드가 더 잘 보입니다. – Clemens

답변

0

실제로 작동하는 방식을 이해하는 가장 좋은 방법은 소스 코드를 보는 것입니다. 많은의가 :

닷넷 프레임 워크의 소스 코드 https://referencesource.microsoft.com/

당신은 https://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/Threading/Dispatcher.cs,ad208569500b2a1d

내 빠른 이해를이 코드를 확인하고 이해 한 후에 당신의 질문에 대한 답을 얻을 수 있습니다

에서 확인할 수있다 우선 순위는 코드에 필요한 경우 작업의 우선 순위를보다 정확하게 지정하기위한 기회를 제공하는 것입니다. 특정 우선 순위의 작업을 수행하는 숨겨진 이벤트/상태는 없습니다. Alghoritm은 최우선 순위로 작업을 수행하고이를 호출합니다.