C# 프로그래밍에서 UI쓰레드 외의 다른 쓰레드에서 UI컴포넌트를 변경하면 발생하는 에러이다.

좀 더 정확히 얘기하면, WPF에서 바인딩 된 변수를 UI쓰레드가 아닌 다른 쓰레드에서 변경하면 해당 예외를 볼 수 있다.


관련 설명은 

http://www.csharpstudy.com/WinForms/WinForms-thread.aspx

https://stackoverflow.com/questions/26361020/error-must-create-dependencysource-on-same-thread-as-the-dependencyobject-even


해결방법은

https://www.codeproject.com/questions/873872/eror-dependencysource-on-same-thread-as-the-depend

https://social.msdn.microsoft.com/Forums/vstudio/en-US/7262a256-62cb-4b50-88c0-d114ef001a1b/wpf-amp-c-error-must-create-dependencysource-on-same-thread-as-the-dependencyobject?forum=wpf


마지막 링크를 보면 사용자 쓰레드를 어떻게 생생해야 하는지 알 수 있다.


나의 경우에는 아래 구문으로 해결


MainWindow.xaml.cs

public partial class MainWindow : Window

{

private void 예외를발생하는함수()

{

this.Dispatcher.BeginInvoke(new ThreadStart(() =>

{

쓰레드에서 실행할 작업;

}));

}

}



IE에서 스크립트를 불러올 때, 
  
"Internet Explorer가 이 웹페이지에서 스크립트 또는 ActiveX컨트롤을 실행하는 것을 제한했습니다" 에러메시지가 발생하는 경우가 있다. 

이때, 문제해결방법은 

IE의 도구 > 인터넷 옵션 > 고급 > [내컴퓨터]에 있는 파일에서 액티브 콘텐츠가 실행되는 것을 허용 체크 

그 다음은 문제 해결!  

출처: http://pinkyj0513.tistory.com/entry/Internet-Explorer가-이-웹페이지에서-스크립트-또는-ActiveX컨트롤을-실행하는-것을-제한했습니다 [For the better tomorrow.]


덧. 재부팅을 잊지말자!

+ Recent posts