원인이 AddPrintf 이라고 보이지 않습니다.
우연히 AddPrintf 때문에 쓰레드가 동기화되었거나
처리속도가 느려졌기 때문일 수도 있습니다.
쓰레드에서 GUI(GDI) 에 접근하는 지요?
그렇다면 Synchronize 를 썼는지요?
또, 상호배제는 제대로 했는지요?
[꼴].CCOL 님이 쓰신 글 :
:
:
:
:
:
:
: for(int i=0; i{ 1.
: AddPrintf("TT_Free : Stacker %d 체크 테스트" , 1);
: 2. AddPrintf("TT_Free : Stacker %d 체크 " ,
: i+1);
: // ....
: }
:
:
: 제가 장비 소프트웨어를 만드는 소스에 위와 같은 루틴이 들어있습니다.
: 쓰레드로 돌리고 있는중 쓰레드가 갑자기 죽어 버려서 원인을 찾다 보니 위의 코드 차이로 정지해 버린다는것을 알게 되었는데요.
: 신기해서 함 올려봅니다.
:
: <현상 1>
: 1번처럼 i를 참조하지 않고 돌리면 for loop에서 쓰레드가 정지 해 버립니다.
: 2번처럼 i+1로 해서 돌리면 죽지 않고 잘 동작합니다.
: 1,2번 둘다 빼면 쓰레드는 정지합니다.
:
: <현상 2>
: 씨빌더5.0에서는 문제 없었는데..
: 씨빌더6.0으로 다시 컴파일하고 부터 위와 같은 문제가 발생합니다.
: 빌더6.0 업데이트 설치하고 다시 컴파일 해도 마찬가지 입니다.
:
:
: 별루 기대는 안하지만..
: 왜 그럴까 함 생각들 해보시길.. ^^
:
:
:
:
:
:
|