C#/.NET을 사용하여 일시 중지 시간을 보려고합니다. 시간을 설정할 수는 있지만 일시 중지 할 시간을 설정하고 싶습니다.Windows의 일시 중지
누구든지이 작업을 수행하는 방법을 알고 있습니까?
명령 프롬프트 제안도 도움이됩니다.
저는 Visual Studio 2010을 사용하고 있습니다.
C#/.NET을 사용하여 일시 중지 시간을 보려고합니다. 시간을 설정할 수는 있지만 일시 중지 할 시간을 설정하고 싶습니다.Windows의 일시 중지
누구든지이 작업을 수행하는 방법을 알고 있습니까?
명령 프롬프트 제안도 도움이됩니다.
저는 Visual Studio 2010을 사용하고 있습니다.
테스트 용? 또는 실생활?
mock DateTime.Now 테스트를 위해 (IClock
인터페이스를 사용하는 것이 더 쉽지만). 사용의 경우 - 은이 아닙니다.
아니면 Thread.Sleep
입니까?
@ Marc - 동결해야하는 시스템 시간입니다. 다음주가 아닌 이번 주에 보고서가 입력되었는지 확인해야합니다. 다음 주 23시 59 분 59 초에 확인합니다. 시스템이 다음주라고 생각하지 않는지 확인하는 것입니다. 이 프로세스는 자동화 된 테스트에서 보고서를 확인하는 데 1 초 이상 걸립니다. – chrissygormley
이렇게하려면 시스템 시간을 고정 할 필요가 없습니다. 냉동 시스템 시간이 1 초 이상 걸리면 어떻게 될까? 프로세스를 이전에 실행하거나 시간 처리 코드를 개선하십시오. 코드가 실행되는 주 시간이 1 시간 미만이면 이전 주를보아야한다는 것을 알게됩니다. 코드에 추가하십시오. –
@chrissygormley 다른 사람들이 지적했듯이이를 수행하는 가장 좋은 방법은 테스트에 대한 타이밍 동작을 조롱 할 수 있도록 시간에 대한 모든 종속성을 격리하는 것입니다. 이것은 항상 쉬운 일은 아닙니다. 특히 기존 코드베이스가있는 경우에 특히 그렇습니다. 필자는 개인적으로 시간 인식을 필요로하는 클래스에 주입 할 수있는 다양한 타이밍 관련 함수 (DateTime.Now보고, 시간 경과 후 콜백, 경과 시간 측정 등)를 제공하는 ITimerService를 갖고 싶어합니다. –
나는 당신이 창문 시간을 멈추는 것에 대해 이야기하고 있다고 생각하는데, 이것은 이것을하기위한 창 기능이 아니라고 생각한다. 실제로 (브레이크 윈도우 이외의) 다른 해결책이있을 수 있습니다.
@ MikeG - 특정 시간에 테스트를 작성 중이며 테스트 실행과 동일하게 유지해야합니다. 그것은 경계 테스트, 나는 당신이 과거에 시간을 바꿀 수 있기 때문에 아무 문제도 윈도우 타이머를 일시 중지해야한다고 생각합니다. – chrissygormley
테스트를 통해 동일한 값을 반환 할 수있는 교체 가능한 가짜 클래스로 시계를 조롱하십시오. –
글쎄, 왜 이렇게하고 싶지는 모르겠지만, Windows에서 'PauseTime'기능과 같은 것이 없기 때문에, 현재 서비스를 표시하는 서비스를 가지고 계시지 않겠습니까? 그런 다음 시스템 시간을 계속 시작 시간으로 설정합니다. 시스템 시간을 동일하게 유지하는 효과가 있어야합니다.
@ Kazar - 그게 내가 잠시 한 일이지만, 나는 그걸 막 동결시킬 길을 기다리고 있었다. 고맙습니다. 어쨌든 – chrissygormley
일부 디버깅 작업에 소요되는 시간을 확인하려면 클래스가 있습니다. page on MSDN에는 사용법에 대한 몇 가지 예가 있습니다. 찾고있는 정밀도의 유형을 알 수 없으므로 고성능 타이밍 진단을 찾는 경우 사용할 클래스가 아닙니다.
희망이 도움이됩니다.
'타이머'를 일시 중지 하시겠습니까? 슈퍼맨 만 시간을 멈출 수 있다고 생각합니까? 아니면 시간을 거꾸로 만들까요? :) –
@DHoerster - 척 노리스는 어떨까요? :) – Giorgi
왜 이걸하려고합니까? –