C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[23012] Re:두가지 소스의 차이점은 뭘까요?
김영균 [] 627 읽음    2002-12-04 16:42
원인이 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 업데이트 설치하고 다시 컴파일 해도 마찬가지 입니다.
:
:
:
별루 기대는 안하지만..
:
왜 그럴까 함 생각들 해보시길.. ^^
:
:
:
: :
:

+ -

관련 글 리스트
23003 두가지 소스의 차이점은 뭘까요? [꼴].CCOL 616 2002/12/04
23018     Re:두가지 소스의 차이점은 뭘까요? 정성훈.해미 613 2002/12/04
23012     Re:두가지 소스의 차이점은 뭘까요? 김영균 627 2002/12/04
23014         Re:Re:두가지 소스의 차이점은 뭘까요? [꼴].CCOL 620 2002/12/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.