|
역시 ~
가려운곳을 긁어 주셔서 감사 합니다~ ^^
장성호 님이 쓰신 글 :
: 1초에 한번씩 WM_TIMER라는 메시지가 발생한다고 해서 pc가 버벅거리진 않습니다.
: 그것 처리하는데 필요한 cpu 자원이 얼마나 되는지 정확하게는 모르지만..
:
: 요즘 cpu에서 1초에 처리할수 있는 량에 수만분의 1도 안될것입니다.
: GetMessage(또는 PeekMessag)는 어차피 반복적으로 호출하구..
:
: 만약 WM_TIMER 메세지가 있다하더라두..
: 메세지핸들러를 찾아서 호출해주구..
: 메세지핸들러(OnTimer이벤트함수)에서 체크해주는 코드..
:
: 그정도 코드는 초당 수만,수십만번도 더 처리할수 있습니다.
: 문론 cpu에따라 다르겠지만..
:
: 아무 메세지가 발생하지 않아도 처리하고 있는 작업이 있는데..
: TIMER메세지 한번발생으로 처리하는 내요이
: 그것보다 결코 많지 않습니다.
:
: 결론적으로 TIMER메세지 발생으로 처리할 작업량이 늘어나는것은 거의 없다고 보시면 됩니다.
:
: 테스트 해보진 않았지만 오히려 줄어들수도 있구요
: 왜냐하면 vcl에서는 시스템 메세지큐에서
: GetMesage로 메세지를 가져오지 않고 PeekMessage로 메세지를 가져오는데
: 메세지가 없는경우 처리하는 작업이 상당히 있기 때문이죠
:
: 그럼..
:
:
:
: 초초보 님이 쓰신 글 :
: : 그렇군요 ..
: : 그렇다면 매초마다 TTimer가 불려진다면 cpu를 1초에 한번 잡아먹어서 컴퓨터가 느려지는 현상이 발생하지 않을까요?
: : 느려지지 않는 범위에서 가능할까요?
: : 일단 한번 해보겠습니다~ 답변 감사해요~
: :
: :
: : 장성호 님이 쓰신 글 :
: : : 그냥
: : : - TTimer를 하나 올려두고
: : : - Timer의 Interval을 1초로 해두구
: : : - OnTimer이벤트에서..
: : : 현재 시간을 시/분/초 로 decode해서
: : : - 분/초가 모두 0 인 경우에만
: : : 원하는 작업을 수행하면 되지 않을까요?
: : :
: : : 위 방법의 문제점이 하나 있는데요..
: : : TTimer는 반드시 1초 간격으로 이벤트가 들어오지 않는다는것입니다.
: : : 1초를 조금 넘길수도 있지만.. process(CPU)가 다른 일로 바쁘면..
: : : Timer이벤트가 발생이 많이 늦어질수도 있죠
: : :
: : : 이부분만 신경쓰면 위 방식에 뭐 큰문제는 없을듯...
: : :
: : :
: : : 그럼...
: : :
: : :
: : :
: : : 초초보 님이 쓰신 글 :
: : : : 제가 문득 타이머실행을 공부중인데요
: : : : 매시간 정각마다 타이머를 실행시키려면
: : : : 어떠한 방법이 있을지 궁금해서 글을 올려요~
: : : : 검색해보니 그런 방법은 없는거 같아서요~
: : : : 빌더 초보라 .. C++도 초보구요~ ㅋ
: : : : 그럼 지나가시다 한마디만 남겨주세요~ ^^
|