PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2022/01/06 15:11:54
Name EZrock
Subject [질문] C# 타이머 관련 질문입니다. (수정됨)
인터벌이 1초인 타이머가 있습니다.

그 타이머에는 작업이 1.5초 걸리는 작업이 돌아가게 됩니다.

작업시간이 인터벌을 넘어서게 되는데 이때 틱 메소드에서 우선 enabled를 false로 세팅하고 finally문에서 다시 enabled를 true로 바꾸는 구조로 되어있습니다.

작업을 여러개 쌓아놓으면 순차적으로 이어지면서 처리되는데 이 안에서 어떤 일들이 벌어지는지 직관적으로 이해가 되지 않습니다.

그리고 인터벌을 5초로 세팅하면 마찬가지로 enabled가 한번 바뀌고 5초 뒤에 돌게 되더라고요

인터벌이 1초일때 그리고 5초일때 저 틱메소드와 타이머 전체적으로 어떤 일들이 일어나게 되는지가 너무 궁금합니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
22/01/06 16:02
수정 아이콘
메인 에서는 1초에 한번씩 Timer 가 Enable 되어 있으면 Timer_Tick 메소드를 호출

1초 -> Timer_Tick 호출됨(Timer.Enable = false 로 변경 하며 작업 수행)
2초 -> Timer_Tick 호출 할려고 하였으나 Enable 이 false 라 호출하지 않음
2.5초 Timer_Tick 메소드 끝남(Timer.Enable = true 로 변경)
3초 -> Timer_Tick 호출됨(Timer.Enable = false 로 변경 하며 작업 수행)
4초 -> Timer_Tick 호출 할려고 하였으나 Enable 이 false 라 호출하지 않음
4.5초 Timer_Tick 메소드 끝남(Timer.Enable = true 로 변경)
5초 -> Timer_Tick 호출됨(Timer.Enable = false 로 변경 하며 작업 수행)

interval 이 5000ms 일 경우
1초 -> Timer_Tick 호출됨(Timer.Enable = false 로 변경 하며 작업 수행)
2.5초 작업 끝남(Timer.Enable = true 로 변경)
6초 -> Timer_Tick 호출됨(Timer.Enable = false 로 변경 하며 작업 수행)
7.5초 작업 끝남(Timer.Enable = true 로 변경)
22/01/06 23:08
수정 아이콘
밑의 42년모솔님이 맞는것 같습니다 답변 감사합니다
22/01/06 16:05
수정 아이콘
C#은 잘 모르지만 일반적인 타이머와 틱을 생각해 봤을때 대충 틱을 0.5초라고 가정하면
0: 작업시작 enabled=false
0.5: 인터벌도달x -> 작업x
1: 인터벌도달, enabled==false -> 작업x
1.5: 작업끝 enabled=true
1.5: 인터벌도달, enabled==true -> 작업시작
반복
5초일때는
0: 작업시작 enabled=false
0.5: 인터벌도달x -> 작업x
1: 인터벌도달x -> 작업x
1.5: 작업끝 enabled=true
1.5: 인터벌도달x -> 작업x
2: 인터벌도달x -> 작업x
...
5: 인터벌도달, enabled==true -> 작업시작
반복
대충 이렇게 동작하지 않을까요? 원하는 답변이 맞는지 모르겠네요.
22/01/06 23:08
수정 아이콘
밑의 42년모솔님이 맞는것 같습니다 답변 감사합니다
42년모솔탈출한다
22/01/06 16:31
수정 아이콘
그냥 1.5초 동작 -> 1초 인터벌 -> 1.5초 동작 -> 1초 인터벌 -> 반복
아닌가요?
22/01/06 23:08
수정 아이콘
이게 맞는것 같습니다. 답변 감사합니다
22/01/07 00:47
수정 아이콘
지금 글쓴이님 쪽지 받고 테스트해보니 제가 잘못 알고 있었네요
타이머 enable 속성이 false 에서 true 로 바뀐 다음 interval 시간동안 대기 하고 다시 Tick 함수를 호출하네
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
160927 [질문] 혼수 가구쇼핑을 위해 서울 가구거리 위치를 질문드립니다. [9] 잘생김용현4898 22/01/06 4898
160926 [질문] C# 타이머 관련 질문입니다. [7] EZrock6153 22/01/06 6153
160925 [질문] 액셀 함수 좀 여쭙겠습니다. [16] 츠라빈스카야6567 22/01/06 6567
160924 [질문] 와이드 모니터 추천해주실 수 있나요? [2] 아르네트5116 22/01/06 5116
160923 [질문] ps3 용 한글판 2d rpg 추천 좀 부탁드립니다. [5] 귀여운호랑이5783 22/01/06 5783
160922 [질문] 결혼반지 어디서 사면 좋을까요?! [18] 골드똥7365 22/01/06 7365
160921 [질문] 부스터샷 맞은지 2일 이후 몸살시 백신휴가 받나요 [12] 멜로7537 22/01/06 7537
160920 [질문] 가성비 핸드폰, 혹은 폰 싸게 바꾸는 방법은 뭐가 좋나요? [8] 잉차잉차5718 22/01/06 5718
160919 [질문] 몽제 매트리스나 베개 사용해 보신 분 계신가요? [8] 원해랑7767 22/01/06 7767
160918 [질문] 혹시 중고 세탁기, 냉장고 구매해보신분 계실까요? [7] 베가565711 22/01/06 5711
160917 [질문] 로아 처음으로 해볼까 하는데요 [7] 루엘령6434 22/01/06 6434
160916 [질문] 대리인 전입신고 준비물 좀 알려주세요. [2] 늘새로워5197 22/01/06 5197
160915 [질문] 전기차 충전기 설치할 때 동의 얻기 [2] 아타락시아16220 22/01/06 6220
160914 [질문] 셋톱박스는 크롬캐스트가 최선인가요? [11] 행복한기억을7430 22/01/06 7430
160913 [질문] (증권사 앱 기준으로) 배당금을 포함한 종합수익률을 확인하는 방법 조언 부탁드려요 [5] 코시엔5747 22/01/05 5747
160912 [질문] 태고의 달인 북컨트롤러 연결하는 법 알고 싶습니다. [8] 다이어트7153 22/01/05 7153
160911 [질문] (사진 주의..) 다리색깔이 갑자기 노란데.. 문제있는걸까요? [4] 걱정말아요그대6632 22/01/05 6632
160910 [질문] (장문주의)아내가 사촌시누이한테 많은 스트레스를 받고 있습니다. [95] 삭제됨11695 22/01/05 11695
160909 [질문] 집-회사간 문서공유하기 편한 방법이 뭐가 있을까요? [11] 민서6465 22/01/05 6465
160908 [질문] 플스 게임 추천 받습니다. [16] 원장5390 22/01/05 5390
160907 [질문] 로아 늅늅 질문입니다. [9] 진돗개6576 22/01/05 6576
160906 [질문] 자동차 팔때 어떻게하시나요? [7] 키키모하5310 22/01/05 5310
160905 [질문] 남자 네명이서 놀면서 숙박할 곳 있을까요? [7] 사는게젤힘드러5924 22/01/05 5924
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로