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
[68487] Re:Application->ProcessMessage()
時代遺憾 [cdincdin] 1718 읽음    2012-11-07 14:55
이건 소스를 다 봐야압니다.
맥락을 알아야 왜 저렇게 코딩했는지를 알수있어요.

제 짧은 소견으로는

어플리케이션 종료 시 발생되어지는 어떤 에러를 미연에 방지하고자 약간의 꼼수를 쓴것이 아닌가 싶군요
머 쓰레드나 메모리쪽에서 에러가 발생될 수도 있죠.

또 하나는 혹시 이 프로그램이 통신 관련 프로그램이라면 프로그램이 종료되었을 때
종료되는 이벤트를 다른 프로그램에 알려줘야하는데 통신 클래스에서 종료 메시지를 채 보내기 전에
프로그램이 종료 되니까 딜레이를 준것일수도 있구요.

Sleep(300) 쓰고 싶은데 그러다보면 딜레이 시간만큼 먹통이 되니까
ProcessMessages() 을 중간 중간에 줘서 다른 이벤트를 처리할려고 한것 같네요.


식섭 님이 쓰신 글 :
: 전임자가 짜놓은 소스중에 formclose() 이벤트에서
:
: for( int i=0;i<3; i++)
: {
:     Application->ProcessMessages();
:     ::Sleep(100);
: }
:
: 이란 소스가 있더군요
:
:     Application->ProcessMessages();
: 이란게 뭐하는함수인지 궁금하여 MSDN에서 검색해 보니
:
: 현재 진행중인 어플리케이션을 일시정시하고 메세지큐가 비어있을때까지 루프를 돌면서 메세지를 처리하는거같은데
:
: 저기서 왜 for문으로 3번이나 반복하는지 모르겠습니다 뒤에 Sleep(100)을 준거 보니 뒤늦게 들어오는 메세지가 있을지 모르니깐
:
: for()문을 돌리는건가요?

+ -

관련 글 리스트
68485 Application->ProcessMessage() 식섭 1374 2012/11/07
68491     Re:Application->ProcessMessage() 박지훈.임프 3545 2012/11/08
68487     Re:Application->ProcessMessage() 時代遺憾 1718 2012/11/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.