오류 내용
System.InvalidOperationException: '많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.'
오류 이유
WPF나 실버라이트에서 타이머는 다른 쓰래드기때문에 UI쓰래드를 접근할때 에러가 난다고 한다.
이럴때는 윈폼과 마찬가지로 인보크를 사용하여 작업을 해야 한다.
해결 방법
// 다른 쓰레드에서 UI 쓰레드 접근하기 => 윈폼과 마찬가지로 인보크를 사용하여 작업
Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
{
// 실행 할 부분 넣기
}));
이렇게 처리하니 해결되었다.
invoke는 동기적으로 실행된다고 한다. 아직 c#이 어렵다..
참고 링크