주어진 작업으로 새 타이머를 만드는 방법이 있습니까? 처음부터 1 시간 후에 자체를 죽여야한다고 알리는 방법이 있습니까? (자체적으로 해결할 수 있습니까, 아니면 그것을 처리 할 다른 라인이 필요합니까?)응용 프로그램의 수명의 처음 1 시간 동안 만 타이머가 필요합니다.
답변
저는 두 개의 타이머를 사용합니다. 하나는 원하는 것을하고 다른 하나는 1 시간 후에 첫 번째 타이머를 종료하는 것입니다.
다음은 두 가지 예이며, 각각 1 초 기본 타이머를 사용하여 5 초에 종료해야합니다.
는 System.Threading.Timer를 사용하는 경우 :
Timer actualTimer = new Timer(obj => Console.WriteLine("Timer!"),
null, 0, 1000);
Timer killingTimer = new Timer(obj =>
{
Console.WriteLine("Killing timer!");
// Set the dueTime and timeout to infinite, to stop the timer.
actualTimer.Change(Timeout.Infinite, Timeout.Infinite);
killingTimer.Change(Timeout.Infinite, Timeout.Infinite);
}, null, 5000, 5000);
Console.ReadLine();
당신이 System.Timers.Timer를 사용하는 경우 : 밀리 초
Timer actualTimer = new Timer();
actualTimer.Interval = 1000;
actualTimer.Elapsed += (sender, e) => Console.WriteLine("Timer!");
actualTimer.Start();
Timer killingTimer = new Timer();
killingTimer.Interval = 5000;
killingTimer.Elapsed += (sender, e) =>
{
Console.WriteLine("Killing timer!");
actualTimer.Stop();
killingTimer.Stop();
};
killingTimer.Start();
모든 시간은 (1000 초에서). System.Threading.Timer
이 this post에 따라 선호되지만 System.Timers.Timer
은 this post에 따라 타이머의 메서드가 다른 스레드에서 호출 될 수있는 상황입니다.
당신은 또한 살인 타이머를 죽이고 싶다! – usr
감사합니다. Virtlink와 usr. 그것은 작동하고 그것은 깔끔한 솔루션 (나는 그것이 생성자에 있었으면 좋겠지 만 이것도 좋다) – user1025852
또 다른 질문 - 동기화 문제가 있어야합니까? 예를 들어 죽이는 타이머는 몇 가지 중요한 섹션에서 실제 타이머를 죽이고 예외가 발생합니까? – user1025852
- 1. 타이머가 설정된 시간 동안 순환되도록하십시오 [C#]
- 2. 1 시간/1 시간 만 지났는데도 트위터 통화가 많습니다.
- 3. 응용 프로그램의 유휴 시간
- 4. 변수 값을 24 시간 동안 만 저장
- 5. 시간, 요일 웹 응용 프로그램의 시각적 화면
- 6. 응용 프로그램의 대체 시스템 시간
- 7. 만 처음 페이지로드
- 8. 1 분 동안 만 함수를 실행하는 방법
- 9. 컴파일 시간 동안 C++ 프로그램의 거대한 데이터
- 10. 1 시간 동안 PHP 캐시 XML 파일
- 11. iPhone 응용 프로그램의 국제화에 대한 도움이 필요합니다.
- 12. iPad 응용 프로그램의 UIButton에 대한 응답 시간
- 13. iOS 응용 프로그램의 시간 간격 계산
- 14. 계측기의 "Created & Destroyed"할당 수명의 동작
- 15. mef를 사용하여 wpf 응용 프로그램의 도움이 필요합니다.
- 16. 간격 시간 전에 C# 타이머가 실행됩니다.
- 17. 처음 시간 스크립트
- 18. 인상적인 Silverlight (4) 응용 프로그램의 예가 필요합니다.
- 19. process.waitFor() "1"안드로이드 응용 프로그램의 반환에
- 20. Ajax에서 독립적 인 타이머가 여러 개 필요합니다.
- 21. iOS 응용 프로그램의 빌드 정보 (날짜/시간 응용 프로그램 작성)
- 22. 응용 프로그램 실행 시간의 처음 5 시간 동안 매 2 분 Tomcat 전체 GC
- 23. Google 캘린더 응용 프로그램의 "1 일"보기와 같은 레이아웃 만들기
- 24. Python을 처음 사용하여 도움이 필요합니다.
- 25. Unity 기반 응용 프로그램의 느린 시작 시간
- 26. 안드로이드 응용 프로그램의 세션 시간 제한
- 27. 응용 프로그램의 시험 버전에 대한 시간 제한
- 28. 웹 응용 프로그램의 세션 시간 초과
- 29. .net 응용 프로그램의 oracle 연결 시간 초과
- 30. PHP 응용 프로그램의 기본 제한 시간 초과.
이 WinForms입니까? WPF? 다른 것? 어떤 타이머를 사용하고 있습니까? 코드를 게시 할 수 있습니까? –
두 개의 성능 카운터가 있습니다. 하나는 매 초마다 업데이트되지만 다른 하나는 매시간 업데이트됩니다. 첫 번째 시간에 카운터의 일부가 0 인 것을 보는 것이 깔끔한 것은 아닙니다. 순수한 C# 4.0 질문으로 생각해보십시오. 어떻게하면 작업을 타이머로 설정하고 한 시간 후에 멈출 수 있습니까? 나는 그걸 직접 관리하기 시작하고 싶지 않다 ... – user1025852