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
[74701] Re:Re:void __fastcall Lock(void) 이게 뭐하는 함수죠?
한시운 [hss9205] 3350 읽음    2017-12-22 11:47
빌더(TWx) 님이 쓰신 글 :
: 한시운 님이 쓰신 글 :
: :
: :     Graphics::TBitmap *bmp=NULL;
: :  
: :     bmp=new Graphics::TBitmap;
: :     bmp->Width=Panel->ClientWidth;
: :     bmp->Height=Panel->ClientHeight;
: :     bmp->Canvas->Brush = Panel->Brush;
: :     bmp->Canvas->FillRect(Panel->ClientRect);
: :     bmp->Canvas->Lock();
: : 

: :
: : 대략 이런식으로 생성할때 쓰는것 같은대     bmp->Canvas->Lock(); 이게 의미가 뭔지 왜 있어야 하는건지를 모르겠내요
: :
:
:
: 답변:
:
:
: 여러 쓰레드에서 동시에 Canvas 개체를 액세스할 때 동기화 하기 위한 목적으로 사용하는 거고
: 쓰레드가 관여되지 않으면 사용할 필요 없습니다.
:
: 그리고...
: 멀티 쓰레드로 액세스할 때.. 굳이 Canvas의 Lock()을 사용해야 하는 것은 아니고
: 일반적인 크리티칼섹션 API 써도 됩니다.
:
:
: 코드 사용 패턴은....
:
: void foo()
: {
:     Canvas->Lock();
:     .....
:     캔버스 액세스 호출들...
:     .....
:    Canvas->Unlock();
: }
:
: 형태가 되어야 하고요.
:

답변 :
그렇군요 크리티칼 섹션을 쓰는게 익숙하진 않지만 일단 편리하고 짧게 쓸수 있으니 애용해야겠내요 ㅇㅅㅇ
뭐 코드 자체는 안정적이겠죠뭐 하하하;

+ -

관련 글 리스트
74692 void __fastcall Lock(void) 이게 뭐하는 함수죠? 한시운 3160 2017/12/20
74698     Re:void __fastcall Lock(void) 이게 뭐하는 함수죠? 빌더(TWx) 3304 2017/12/21
74701         Re:Re:void __fastcall Lock(void) 이게 뭐하는 함수죠? 한시운 3350 2017/12/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.