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
[50093] Re:타이머 질문 드립니다.
장성호 [nasilso] 1431 읽음    2007-07-26 18:40
먼저 컴퓨터에서 프로그램이 동시에 돌아갈수는  없습니다.
쓰레드로 돌려도 동시는 아닙니다.

윈도우에 프로그램이 여러개 떠있어
여러 프로그램이 동시에 실행되서 돌아가지만

사실은 윈도우가 아주 짧은시간간격으로 
쓰레드단위로  조금씩 cpu자원을 쓰레드에 할당해주는겁니다.
사람은 못느낄 정도로..
애쪼금, 제쪼금,게쪼끔...
이런걸 멀티테스킹이라고 그러죠..

그런데 어떤 프로그램이 while문에 빠져서 못나오고 있다면
그 프로그램이 cpu자원을 너무 많이 쓰기때문에
원도우전체가 버벅 거리게 됩니다.


서론이 길었네요
타이머에서

1.
타이머가 두개일때 하나씩 이벤트 핸들러 함수가 호출됩니다. 차례차례
타이머를 두개 올려놓고 각 1초 씩 주고
둘중 하나의 타이머 핸들러 함수에서 Sleep(3000) 3초 정도 줘 보십시요
그리고 이벤트 발생하면 Label에 Count하면서 뿌려보십시요

1번 타이머는 천천히 돌고 2번 타이머는 빨리돌까요?
아닙니다 같이 올라갑니다.

Sleep(3000)동안 아무 작업을 안하는 겁니다.


2. 그리고 하나의 타이머에서  타이머가 1초짜리인데
    작업하는 시간이 3초 걸리면  작업중에 또 이벤트가 발생할까요?
    아닙니다.
    작업이 끝나야 이벤트가 발생합니다.
    그리고 끝나고 1초후에 발생하는것이 아니라  곧바로 이벤트가 발생합니다.
    왜냐면 3초작업동안 이미 interval 1초가 지났으니까요..

3. 1초짜리 타이머에서 작업이 3초 걸리는경우 작업중에 다시 타이머 이벤트가 발생하려면
   작업 중간중간에 Application->ProcessMessages();를 넣으면 가능합니다.
   그러나 그렇게 하면  재귀함수 비슷하게 되므로  문제가 있습니다. 
   절대 Timer이벤트 함수안에 Application->ProcessMessages();넣지 마시길
   
4. Application->ProcessMessages();를 Timer핸들러 함수에 넣을수도 있어요 
   그런경우엔 Timer 함수 시작부분에 Timer1->Enabled=false 한후
    함수 끝에 Timer1->Enabled=true 하는식으로 하시길...



왕초보 님이 쓰신 글 :
: 타이머에 대한 질문 좀 드리겠습니다.
:
: 만약 두개의 타이머를 동시에 실행하게 된다면 하나의 실행이 끝나고 다른 하나가 실행되나요??
:
: 아니면 두가지 다 동시에 실행이 되는건가요??
:
: 그리고 또 한가지..
:
: 타이머 동작 시간이 끝나기 전에 연속해서 같은 이벤트를  실행하면 이벤트가 차례대로 실행이되나요??
:
: 안된다면 그렇게 해줄수 있는 방법은 없나요??
:
: 답변 좀 부탁 드립니다..
:
: 그럼 모두 수고요

+ -

관련 글 리스트
50092 타이머 질문 드립니다. 왕초보 1246 2007/07/26
50192     Re:타이머 질문 드립니다. 고진욱 1158 2007/08/07
50093     Re:타이머 질문 드립니다. 장성호 1431 2007/07/26
50909         멀티미디어 타이머 경우.. 쩡이 1093 2007/10/16
50095         Re:Re:타이머 질문 드립니다. 왕초보 1494 2007/07/26
50096             Re:Re:Re:타이머 질문 드립니다. 박지훈.임프 1796 2007/07/26
50100                 Re:Re:Re:Re:두분모두 너무 감사요(냉무) 왕초보 1065 2007/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.