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
[73029] Re:Re:Re:Re:정말 궁금했던 부분인데 답변 주셔셔 감사합니다~
그린비 [] 3869 읽음    2015-09-21 20:27
동작중이던 타이머 동작은 완료하고 이벤트가 발생하는 거군요
큰 착오를 할 뻔했네요 ㅋㅋ
정말 감사드립니다.

송신영 님이 쓰신 글 :
: TimerA()
:  {
:   함수1();
:   함수2();
:   함수3();
:  }
:
: 일단 TimerA()가 시작되면  함수1,2,3을 모두 완료 후에 다음 이밴트가 처리됩니다.
: 함수1,2,3 안에서 메시지를 강제로 처리하는 루틴이 없는 한
: 다른 이밴트가 들어올 수 없습니다.
: 즉 함수1,2,3에서 시간을 많이 잡아 먹는 루프를 돌릴 경우
: 해당 루프를 모두 수행 후에 다음 이밴트를 먹기 때문에
: GUI 가 잠시 멈추는 현상이 발생합니다.
: 주의하셔야합니다.
:
:
: 그린비 님이 쓰신 글 :
: : 감사합니다~!
: : 한 타이머의 동작을 완료하고나서 이벤트 처리가 되지는 않겠네요.
: : 우선순위가 높은 이벤트가 중간중간에 동작을 하는 거군요.
: :
: : 답변 감사드립니다.
: :
: :
: : bugfree 님이 쓰신 글 :
: : : 윈도우에서 발생하는 메세지들은 발생순서대로
: : : 큐에 들어가지만 윈도우 메세지에도 우선순위가
: : : 있어요.
: : :
: : : 사용자 반응에 즉각 응답해야하는 키보드, 마우스
: : : 같은 메세지는 우선순위가 높지만 wm_paint
: : : 타이머 같은 메세지는 순위가 낮아요.
: : :
: : : 발생 순서대로 큐에는 들어가지만, 메세지 핸들러로 보낼때는 우선순위가 높은 놈들을 먼저 꺼내서
: : : 처리하고 낮은것들은 한가할때 보내요.
: : :
: : : 그래서 타이머에 의존해서 코딩하는것은
: : : 좋은 방법이 아니에요
: : :
: : :
: : : 그린비 님이 쓰신 글 :
: : : : 안녕하세요. 요즘  환절기라서 비염에 감기 걸리는 사람도 있고,  건강 잘 챙기시길 바라면서~
: : : :
: : : : 질문 드립니다.
: : : :
: : : :
: : : : VCL 버튼 클릭이벤트나 또는 통신 컴포넌트의 데이터 RCV 이벤트 발생 시, 해당 이벤트 처리가 이뤄지는 타이밍이 궁금합니다.
: : : :
: : : : 예를 들어,
: : : : 메인 프로세스가 하나 있고, 이곳에 타이머가 3개라고 가정했을때 (타이머 Interval은 100ms 정도로 가정)
: : : : 타이머 순서는 A->B->C 순이라고 가정.
: : : : TimerA()
: : : : {
: : : :   함수1();
: : : :   함수2();
: : : :   함수3();
: : : : }
: : : :
: : : : TimerB()
: : : : {
: : : :   함수4();
: : : : }
: : : :
: : : : TimerC()
: : : : {
: : : :   함수5();
: : : : }
: : : : 이러한 구조에서 버튼 클릭 이벤트가 발생하게 되면,
: : : : 타이머 A,B,C를 완료하고 나서(함수1,2,3,4,5을 완료) 이벤트 처리가 되나요? 아니면, 메인 프로세스에서 어떤 처리를 하고 있던지 즉시 이벤트 처리가 되나요??
: : : :
: : : :
: : : : 목적은 이벤트 발생시 변수에 데이터를 넣고 이 데이터를 기준으로 최초 A타이머의 함수1,2,3이 순차적으로 처리를 하려고 합니다.
: : : : 만약  TimerA에 함수 2번 동작중 데이터가 변경되면 함수2번 에서 부터 처리가 되면 문제가 됩니다.
: : : : 함수 1번부터 변경된 데이터를 가지고 처리를 해야 하거든요.
: : : :
: : : : 그래서 해결방법으로는 이벤트 발생시 임시데이터를 변경하고 임시데이터를 바로 사용하는게 아니라. 함수1에서 이 임시데이터를 실제 데이터에 대입해서 처리하게끔 하면 함수1->2->3 순차적으로 돌아 갈 것 것 같은데요.
: : : :
: : : : 결론적으로 질문은,
: : : : 1) 이벤트 발생 시점이 정확히 언제인지 잘 몰라서 문의드립니다.
: : : : 2) 통신 컴포넌트의 데이터 RCV 타이밍도 같은 개념일까요? (IndyTCP 나 IndyFTP 등)
: : : :
: : : :
: : : : 그럼 오늘 하루도 즐프 하시길 바라면서~
: : : :  조언 부탁드립니다.
: : : :

+ -

관련 글 리스트
73005 VCL 버튼 클릭 이벤트 발생시점이 언제일끼요? (메인프로세스가 무엇을 하던 중이든 즉시 인가요??) 그린비 3937 2015/09/15
73007     Re:VCL 버튼 클릭 이벤트 발생시점이 언제일끼요? (메인프로세스가 무엇을 하던 중이든 즉시 인가요??) bugfree 3921 2015/09/15
73009         Re:Re:감사합니다. 윈도우 메세지 우선순위에 대해서 자세히 알아보도록 해야겠네요./ 그린비 3975 2015/09/15
73010             Re:Re:Re:감사합니다. 윈도우 메세지 우선순위에 대해서 자세히 알아보도록 해야겠네요./ 송신영 3912 2015/09/16
73029                 Re:Re:Re:Re:정말 궁금했던 부분인데 답변 주셔셔 감사합니다~ 그린비 3869 2015/09/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.