C#에서 시스템 클록 변화 정크
문제
그들의 실행 방법입니다 delegate
또는 event
C#에서 초, 분, 시간, ... 시스템 클록에서 변경되는 경우, 시스템 클록이 변경되는지, 모든 밀리 초마다 타이머를 사용하여 속성이 변경되었는지 확인하고 최대 1 밀리 초의 지연으로 이벤트를 실행합니다.
따라서 피하고 싶습니다 투표 그리고 특정 시간에 이벤트를 해고하십시오.
해결책
질문이있는 경우 : "1 초/시간마다 대의원을 어떻게 실행합니까?"
1 분 및 시간 간격 으로이 질문에서 내 대답에 표시된 것과 같은 작업을 수행 할 수 있습니다.
이것은 상당히 정확해야하지만 밀리 초에 정확하지는 않습니다.
두 번째 간격으로, 나는 단순한 1 초 간격의 타이머와 함께 갈 것입니다. 사용자의 관점에서 작업이 XX : XX : XX.000 또는 XX : XX : XX.350에서 실행하는 경우에는 큰 차이가 없다고 생각합니다.
다른 팁
구독 할 수 있습니다 SystemEvents.TimeChanged. 시스템 시계가 변경되면 발생합니다.
간격을 (1000 -dateTime.now.millisecond)로 설정하여 양식 앱으로 이것을 해결했습니다.
_timer1 = new System.Windows.Forms.Timer();
_timer1.Interval = (1000 - DateTime.Now.Millisecond);
_timer1.Enabled = true;
_timer1.Tick += new EventHandler(updateDisplayedTime);
이벤트 핸들러는 드리프트를 방지하기 위해 간격을 재설정합니다.
<handle event>
_timer1.Interval = (1000 - DateTime.Now.Millisecond);
제휴하지 않습니다 StackOverflow