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
[44569] Re:ProcessMessage의 사용에 관해서...
smleelms [smleelms] 1732 읽음    2006-04-20 10:19
음.. 어제부터 망설이다 아직 아무도 답변을 달지않으셨길래...

일단 ProcessMessages 와 HandleMessages 의 차이점을 빌더 헬프에서는 다음과 같이 언급이 되어있습니다.

Note:    ProcessMessages does not allow the application to go idle, whereas HandleMessage does.

흠, 말 그대로는 이해가 될듯 한데.. 제 실력으로 주저리 주저리 설명하기는 내공이 딸리네요. ^^;

일단 빌더 헬프에 있는 ProcessMessages 와 HandleMessages 의 헬프를 보시고, 관련 Examples이 예시되어 있으니 차근차근 살펴보시면 되리라 생각됩니다.

그럼...


권기식.with☆ 님이 쓰신 글 :
: 또 질문 드리네요...
:
: 빌더를 한동안 멀리 하다 하니 궁금한 것들이 한꺼번에 쏟아져내립니다.. ^^;
:
: 오늘의 궁금한 점입니다.
:
: 루프를 돌면 사용자 인터페이스가 먹통이 되는 경우가 많습니다.
:
: 제가 하는 것을 예로 들면..
:
: 시리얼 장치로 어떤 명령을 내리고 응답이 오길 기다립니다.
: while 문을 돌면서 입력 버퍼에 원하는만큼의 문자가 들어오길 기다리는데...
: 그냥 루프를 돌면 입력 버퍼로 데이터 수신이 안되더군요.
:
: 예를 들어... CPort를 이용한다면..
:
: while(ComPort->InputCount() < 5);
:
: 이런 문장이 있다면 여기서 무한 루프에 빠져버립니다.
:
: 그래서
:
: while(ComPort->InputCount() <5)
:     Application->HandleMessage();
: 라고 수정해줍니다.
:
: 이런 함수가 타이머로 정기적으로 호출된다면...
: 메시지를 처리하는 과정에 다음 타이머 인터럽트가 걸릴 수 있습니다.
: 이런 동작이 짬뽕이 되면 프로그램을 종료시켜도 종료가 안되고 먹통이 되는 경우가 빈번하더군요.
: 이런 동작이 필요할 때 쓰레드 말고 다른 좋은 방법이 없을까 해서 문의드립니다.
:
: 쓰레드를 공부해야 하는데 공부해서 만들 시간이 없어서 꽁수를 쓰고 있습니다. ^^;
:
: 그리고 ProcessMessage와 HandleMessage 함수의 용도의 차이가 헤깔리네요.
:
: 전자의 경우 프로그램이 메시지를 처리하도록 인터럽트를 거는거고...
: 후자는 윈도우가 메시지를 처리하도록 하는 건데...
: 아무래도 Windows에 대한 이해가 부족해서 그렇겠지요.. ^^;
:
: 명쾌한 해설 부탁드립니다.. (__)

+ -

관련 글 리스트
44561 ProcessMessage의 사용에 관해서... 권기식.with☆ 896 2006/04/19
44569     Re:ProcessMessage의 사용에 관해서... smleelms 1732 2006/04/20
44570         감사합니다. 권기식.with☆ 905 2006/04/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.