본문 바로가기

프로그래밍38

쓰레드 - Thread - 귀가 닳도록 들어온 워커스레드와 UI스레드. 그리고 스레드와 관련된 숱한 의혹과 혼란은 간혹 프로그래밍 할 맛을 뚝 떨어뜨리기도 한다. 그러나 세상에 좋은걸 쉽게 얻을수 있는게 어디 있으랴. 보다 좋은 성능에 보다 매끄러운 결과물을 만들기 위해서는 피해갈수 없는 길이 스레드다. 그만큼 잘 쓰면 프로그램을 빛나게 하지만 잘못쓰면 그냥 망한다. 그리고 알아야 할것이 한두가지가 아니다. 이렇게 복합적인 지식을 요구하기 때문에 스레드가 어렵게 느껴질수 있다. 적어도 멀티스레드로 들어가기 시작하면... 그래서 기초책에서 설명하는 그렇고 그런 진부한 내용은 다 집어치우고, 또 잘 설명해 주지도 않는 UI 스레드도 제대로 알아볼겸 MFC에서 스레드가 어떻게 동작하는지 MFC 소스코드를 살펴보고 멀.. 2010. 10. 27.
쓰레드에서 Main핸들 얻기 아래와 같은 방법은 되도록 사용하지 않는게 낫다. Test프로젝트를 생성 할 경우를 예로 들겠다. - 쓰레드가 아닐 경우 TestDlg* pTestDlg = (TestDlg*)AfxGetMainWnd(); - 쓰레드일 경우 TestDlg* pTestDlg = (TestDlg*)theApp.m_pMainWnd; 쓰레드에서 AfxGetMainWnd()를 호출하면 맴버변수들의 값이 NULL로 되어있다. 하지만 theApp.m_pMainWnd로 접근하면 맴버변수의 주소로 접근한다. 이 방법은 되도록 사용하지 않는게 낫다. 쓰레드 내에서 전역함수를 호출하거나 전역변수를 접근하면 문제가 발생 할 수도 있기 때문이다. "되도록 파라미터로 넘겨서 사용하도록 한다" 2010. 10. 27.