C# WPF Cross-thread problem
WFP를 이용해서 어플리케이션을 개발중이다.
예외 메시지는
"다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다."
UI를 다른 쓰레드에서 update 할려고 하면 UI를 담당하는 쓰레드가 해당 컨트럴(객체)를 사용하고 있어 접근 할 수가 없다. 이렇게 다른 쓰레드가 사용하는 객체를 다른 쓰레드에서 접근할때 생기는 문제를 Cross-thread라고 한다.
해결방법은 새로만든 쓰레드에서 UI를 update 할때 UI쓰레드에게 할일을 위임해주면 된다.
Winform에서는 Invoke 메소드를 이용하고 WPF에서는 Dispatcher.Invoke를 이용하면 된다.
예제는 구글링으로 ~
구글링은 c# wpf cross thread 등으로 검색하면된다.
http://www.google.co.kr/search?gcx=w&sourceid=chrome&ie=UTF-8&q=c%23+cross+thread+wpf+dispatch
예외 메시지는
"다른 스레드가 이 개체를 소유하고 있어 호출한 스레드가 해당 개체에 액세스할 수 없습니다."
UI를 다른 쓰레드에서 update 할려고 하면 UI를 담당하는 쓰레드가 해당 컨트럴(객체)를 사용하고 있어 접근 할 수가 없다. 이렇게 다른 쓰레드가 사용하는 객체를 다른 쓰레드에서 접근할때 생기는 문제를 Cross-thread라고 한다.
해결방법은 새로만든 쓰레드에서 UI를 update 할때 UI쓰레드에게 할일을 위임해주면 된다.
Winform에서는 Invoke 메소드를 이용하고 WPF에서는 Dispatcher.Invoke를 이용하면 된다.
예제는 구글링으로 ~
구글링은 c# wpf cross thread 등으로 검색하면된다.
http://www.google.co.kr/search?gcx=w&sourceid=chrome&ie=UTF-8&q=c%23+cross+thread+wpf+dispatch
댓글
댓글 쓰기