본문 바로가기

WPF

[WPF] 다른 쓰레드에서 UI 쓰레드 접근하기



많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.

 

혹은

"다른 스레드가 소유하고 있는 오브젝트에 현재 스레드가 접근할 수 없다"

(The calling thread cannot access this object because a different thread owns it.)

이런식의 오류가 나기도 합니다.

 

하도 오랜만에 WPF를 해서 감이 없네요;;

WPF나 실버라이트에서 타이머는 다른 쓰래드기때문에 UI쓰래드를 접근할때 에러가 납니다.

 

이럴때는 윈폼과 마찬가지로 인보크를 사용하여 작업을 해야 합니다.

(참고 : MSDN - Dispatcher.Invoke 메서드)

 

 간단하게 이포크를 사용할 수 있습니다.

 

Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
	{
		//사용할 메서드 및 동작
		ScrollGraph_001.AddStep(LastData);
	}));





[참조] http://blog.danggun.net/1715

 

'WPF' 카테고리의 다른 글

[WPF] Prism  (0) 2018.07.04
[WPF] Routed Event  (0) 2018.07.04
[WPF] MVVM  (0) 2018.07.04