programing

UI 스레드의 디스패처를 입수하려면 어떻게 해야 합니까?

jooyons 2023. 4. 20. 21:12
반응형

UI 스레드의 디스패처를 입수하려면 어떻게 해야 합니까?

UI 스레드를 가져올 방법이 있습니까?DispatcherUI 요소에 대한 참조가 없는 경우

정적 응용 프로그램인스턴스에서 UI 디스패처를 가져올 수 있습니다.Application.Current.Dispatcher

확인하실 수 있습니다.Application.Current셧다운 시퀀스 중에 클리어 할 수 있기 때문에 null의 경우는 우선입니다.

WPF를 사용하고 있는 WinForms 어플리케이션(이 경우는 Esri's Arcmap.exe)에서 사용하는 경우, 이하가 훨씬 효과적입니다.

private System.Windows.Threading.Dispatcher Dispatcher { get; set; }

// I put this in my view model constructor as it MUST be called from UI thread
Dispatcher = System.Windows.Threading.Dispatcher.CurrentDispatcher;

다른 방법(호출과 관련된 것)new System.Windows.Application()채우다System.Windows.Application.Current)는 새로운 WPF 창을 열고 닫을 때마다 문제를 일으켰습니다.이뿐만 아니라System.Windows.Application.Current그러나 나는 더 이상 그들의 새로운 창문을 열 수 없었다.InitializeComponents()메서드, 모두 실패:

System.InvalidOperation예외: '어플리케이션 개체를 종료하고 있습니다.'

지금까지 새로운 솔루션은 이러한 부작용 없이 작동하고 있습니다.

언급URL : https://stackoverflow.com/questions/2663070/how-do-i-get-the-ui-threads-dispatcher

반응형