Programming/C# - Window

C#/ Dispatcher(디스패처)에 관해

esoog Polaris 2024. 9. 21. 13:43
반응형

# Dispatcher 클래스

 

WPF에서 UI 요소는 **단일 스레드 아파트 모델(STA)**로 동작합니다. 즉, UI는 메인(UI) 스레드에서만 수정할 수 있으며, 다른 스레드(예: 백그라운드 작업에서 처리한 결과를 UI에 반영하려는 경우)에서 직접적으로 UI 요소에 접근하면 스레드 충돌이 발생합니다.

따라서 백그라운드 스레드에서 UI를 수정하려면, UI 스레드로 작업을 전달해야 하고, 이때 Dispatcher가 필요합니다. Dispatcher는 현재 스레드에서 UI 스레드로 작업을 전송하는 역할을 합니다.

  • Invoke: UI 스레드에서 작업을 동기적으로 실행합니다. 즉, UI 스레드에서 작업이 완료될 때까지 호출한 스레드는 기다립니다.
  • BeginInvoke: UI 스레드에서 작업을 비동기적으로 실행합니다. 호출한 스레드는 작업이 완료될 때까지 기다리지 않고 즉시 반환됩니다.
728x90