스레드 3개가 동작하는 프로그램인데 ( 메인 스레드 1개 + 워커 스레드 A + 워커 스레드 B )


A 스레드 하고 B 스레드 가 메인 스레드에 존재하는 CString 객체 하나를 가지고 문자열을 수정해, ( 동기화 없이 )


그리고는 종종 메인 스레드에서 SetWindowText 함수로 CString 이 가진 문자열로 캡션 이름 바꾸는데.. 이거 문제가 생길까..??


문제가 이해가되..??


unsigned int A_thread_func()

{

while( 1 )

        main->string.Format( _T("A Thread") );

}


unsigned int B_thread_func()

{

     while( 1 )

         main->string.Format( _T("B Thread") );

}


void main_thread_timer() // 메인 스레드의 OnTimer 함수( 주기적으로 호출됨 )

{

     SetWindowText( string );

}


대략 위 같은 구조인데.. 

내가 생각 할때 main_thread_timer함수 에서 SetWindowText를 호출할때 넘겨진 CString의 문자열 주소가 처리 되는 동안, A 와 B 스레드 함수에서 

다시 힙을 free 하고 재할당 하는 과정에서 문제가 생길꺼 같은데... 너들은 어떻게 생각해..?