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
[53413] Re:감사해요~
아제나 [azena] 1074 읽음    2008-05-14 13:22
VCL 컨트롤 자체가 스레드로 돌고 있기 때문에;;;

CriticalSection을 주려면 VCL 내부 소스에 줘야 하겠지요.



김정현 님이 쓰신 글 :
: CriticalSection은 사용해봤는데 같은 결과가 나왔었습니다.
: 하지만 태윤님께서 말씀하신 것과 같이 Synchronize 사용하니까 되네요.
: 근데 CriticalSection도 같은 결과를 얻는 것이 아니었나요?
: 뭐가 다른건지 공부해야겠습니다.
: 선입견 때문에 Synchronize로 테스트 해볼 생각도 하지 않았다는 것이 부끄럽네요.
: 감사합니다~!
:
:
:
:
:
: 방태윤 님이 쓰신 글 :
: : 이게 원인인지는 모르지만
: :
: : 쓰레드에서 화면 출력이랑 관계될땐 Synchronize 를 써야 하는걸로 알고 있는데요...
: :
: : 해 보셨는지요?
: :
: : 수고하세요,
: :
: :
: : 김정현 님이 쓰신 글 :
: : : 쓰레드의 Execute() 함수에서
: : :     
: : : Graphics::TBitmap *bmpOverlay = new Graphics::TBitmap();
: : : bmp->SetSize(640,480);
: : : while(!Terminated) {
: : :     Sleep(25);
: : :     myControl->DrawLiveCam(bmp);               
: : : }
: : : bmp->Free();
: : :
: : : 이렇게 DrawImage()에서 buffer에 있는 image를 bmp->canvas에 뿌려주고,
: : : bmp->canvas에 선, 텍스트 등 overlay image를 그려주고,
: : : myControl의 canvas에 draw() 해줍니다.
: : :
: : : 그런데 이 컴포넌트를 폼에 올려놓고 사용하면 영상이 잘 나오다가
: : : 마우스가 폼 위에 올라오기만 하면 멈춰버립니다.
: : : bmp를 draw 함수 내에서 생성/삭제를 하면 영상이 멈추지는 않지만
: : : 마우스가 폼 위에서 움직일 때마다 bitmap 관련하여 메모리 누수 현상이 생깁니다.
: : :
: : : 그냥 buffer에 있는 영상만을 뿌려주는 것은 문제가 되지 않는데
: : : bitmap을 사용하면서 생기는 문제로 보입니다.
: : :
: : : 어떻게 해결할까요...ㅠㅠ

+ -

관련 글 리스트
53403 [질문] TWinControl 상속 받아 영상을 뿌려주는 컴포넌트를 만들었는데... 김정현 1234 2008/05/13
53404     Re:[질문] TWinControl 상속 받아 영상을 뿌려주는 컴포넌트를 만들었는데... 방태윤 1390 2008/05/13
53409         감사해요~ 김정현 1145 2008/05/14
53413             Re:감사해요~ 아제나 1074 2008/05/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.