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
[74698] Re:void __fastcall Lock(void) 이게 뭐하는 함수죠?
빌더(TWx) [builder] 3301 읽음    2017-12-21 23:21
한시운 님이 쓰신 글 :
:
:     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) 이게 뭐하는 함수죠? 한시운 3157 2017/12/20
74698     Re:void __fastcall Lock(void) 이게 뭐하는 함수죠? 빌더(TWx) 3301 2017/12/21
74701         Re:Re:void __fastcall Lock(void) 이게 뭐하는 함수죠? 한시운 3345 2017/12/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.