반응형

Worker 쓰레드나 UI쓰레드에서 UI 객체를 바로 접근하는것은 매우 위험하다.


컴파일러에 따라서 오류를 발생시키는 경우도 있지만 


컴파일러가 이를 못잡아준 경우에는 해당 쓰레드가 실행되면서 UI접근시 Assertion fail 오류가 발생하면서 죽게된다.


쓰레드에서 UI를 직접 접근하는 방법은 몇가지가 있으나 불편하고, 안정적이지 못하다.


가장 안전하면서 API 프로그래밍 특성인 메시지를 이용하는 방법을 추천한다.


사용자 메시지를 만들어서 PostMessage를 통해 넘겨서 UI를 접근할 수 있다.


물론 Param에 인자값 까지 넘겨서 사용할 수 있다.


::PostMessage(*phObjectHandle, WM_UPDATE_UI, 0, 0);



관련 내용 : http://forums.codeguru.com/showthread.php?312454-MFC-Thread-How-to-access-UI-elements-from-a-thread-in-MFC

+ Recent posts