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 함수를 호출하네
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
160935 [질문] 택배기사가 물건을 모르는사람에게 전해줬을경우 [7] 멍차이6293 22/01/06 6293
160934 [질문] PC 구매 및 견적 질문 [5] 탱구6318 22/01/06 6318
160933 [질문] 스마트폰 촬영장비 질문입니다. [2] 나혼자만레벨업6396 22/01/06 6396
160932 [질문] 결정사 첫 만남 준비 어떻게 해아 할까요? [10] 시계깎는노인6927 22/01/06 6927
160931 [질문] 출퇴근 시간 9호선이 궁금합니다 [22] Choi`12595 22/01/06 12595
160930 [질문] 전세 세입자의 원상복구 의무는 어디까지일까요? (내용 깁니다) [12] 콩탕망탕8523 22/01/06 8523
160929 [질문] 청국장가루 맛잇게? 먹는방법.. [3] 스핔스핔5046 22/01/06 5046
160928 [질문] 식대 비과세 10만원은 인상이 되긴 할까요? [10] 보급보급7176 22/01/06 7176
160927 [질문] 혼수 가구쇼핑을 위해 서울 가구거리 위치를 질문드립니다. [9] 잘생김용현4718 22/01/06 4718
160926 [질문] C# 타이머 관련 질문입니다. [7] EZrock5900 22/01/06 5900
160925 [질문] 액셀 함수 좀 여쭙겠습니다. [16] 츠라빈스카야6268 22/01/06 6268
160924 [질문] 와이드 모니터 추천해주실 수 있나요? [2] 아르네트4980 22/01/06 4980
160923 [질문] ps3 용 한글판 2d rpg 추천 좀 부탁드립니다. [5] 귀여운호랑이5540 22/01/06 5540
160922 [질문] 결혼반지 어디서 사면 좋을까요?! [18] 골드똥7071 22/01/06 7071
160921 [질문] 부스터샷 맞은지 2일 이후 몸살시 백신휴가 받나요 [12] 멜로7273 22/01/06 7273
160920 [질문] 가성비 핸드폰, 혹은 폰 싸게 바꾸는 방법은 뭐가 좋나요? [8] 잉차잉차5460 22/01/06 5460
160919 [질문] 몽제 매트리스나 베개 사용해 보신 분 계신가요? [8] 원해랑7512 22/01/06 7512
160918 [질문] 혹시 중고 세탁기, 냉장고 구매해보신분 계실까요? [7] 베가565486 22/01/06 5486
160917 [질문] 로아 처음으로 해볼까 하는데요 [7] 루엘령6266 22/01/06 6266
160916 [질문] 대리인 전입신고 준비물 좀 알려주세요. [2] 늘새로워4967 22/01/06 4967
160915 [질문] 전기차 충전기 설치할 때 동의 얻기 [2] 아타락시아15978 22/01/06 5978
160914 [질문] 셋톱박스는 크롬캐스트가 최선인가요? [11] 행복한기억을7209 22/01/06 7209
160913 [질문] (증권사 앱 기준으로) 배당금을 포함한 종합수익률을 확인하는 방법 조언 부탁드려요 [5] 코시엔5564 22/01/05 5564
목록 이전 다음
댓글

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