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
[43518] Re:OnRead 이벤트 질문.....
smleelms [smleelms] 909 읽음    2006-02-02 13:45
일단 루프상에서 플래그를 어디서 어떻게 체크하는냐에 따라 달라지겠지요.

하나의 함수내에서 루프를 돌면서 들어오는 이벤트에 따라 바로바로 처리를 해야한다면 제일 단무지(^^;;)한 방법은 루프 중간중간에서 해당 플래그를 계속 체크해야 되겠지요.

그렇지 않다면 결국 해당 플래그를 체크하기 전까지는 정해진 루프상의 내용들이 실행이 되겠지요.
아마도 도훈님께서는 루프의 시작시에 한번만 플래그를 체크하도록 하신것 같네요.

또 다른 방법은 쓰레드를 이용해 특정함수는 함수데로 처리를 하시고, OnRead 이벤트에 따라 들어온 데이터를 처리하는 루틴은 별도로 구동이 되도록 하셔야 하겠죠.. 그런데 이 두 루틴이 상호연관이 된다면 조금 더 주의를 기울이셔서 데이터 관리를 하셔야 합니다.

링버퍼를 구현을 하신다던지, 크리티컬섹션등을 이용을 하신다던지 하셔서 데이터나 메모리 충돌이 일어나지 않도록 주의하셔서 처리하시면 됩니다. 쓰레드에 관한 공부가 필요하겠지요.

그럼..

김도훈 님이 쓰신 글 :
: TClientSocket m_CSock;
: 이렇게 정의를 해서 통신을 하는 클라이언트 프로그램을 만들었는데....
: 특정함수에서 루프가 돌면서 read 이벤트가 발생하면 루프를 멈추고 들어온 데이타를 처리하는 프로그램을 작석중입니다.그런데 read 가 발생하고 나서 플래그가 바뀌면 루프가 멈추게 하고 싶은데 루프가 다 끝이 나야 read 이벤트가 처리가 되네요
: 루프 중간에 read 이벤트가 생기면 바로 처리 하도록 해주는 방법이 있을까요?
: 소켓은 nonblock 입니다.....

+ -

관련 글 리스트
43516 OnRead 이벤트 질문..... 김도훈 945 2006/02/02
43518     Re:OnRead 이벤트 질문..... smleelms 909 2006/02/02
43523         Re:Re:OnRead 이벤트 질문.....답변 감사 합니다....그런데 추가 질문 김도훈 1059 2006/02/02
43525             Re:Re:Re:OnRead 이벤트 질문.....답변 감사 합니다....그런데 추가 질문 smleelms 1223 2006/02/02
43526                 정말 감사합니다...제가 딱 찾던 해답이네요......^^(냉무) 김도훈 796 2006/02/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.