콘솔 응용 프로그램에서 타이머를 사용하려면 어떻게해야합니까? 내 콘솔 응용 프로그램이 백그라운드에서 작동하고 10 분마다 어떤 작업을 수행하기를 원합니다.콘솔 응용 프로그램에서 타이머를 사용하려면 어떻게해야합니까?
어떻게하면됩니까?
감사합니다.
콘솔 응용 프로그램에서 타이머를 사용하려면 어떻게해야합니까? 내 콘솔 응용 프로그램이 백그라운드에서 작동하고 10 분마다 어떤 작업을 수행하기를 원합니다.콘솔 응용 프로그램에서 타이머를 사용하려면 어떻게해야합니까?
어떻게하면됩니까?
감사합니다.
Windows 작업 스케줄러를 사용하여 10 분마다 콘솔 응용 프로그램을 실행할 수 있습니다.
아마도 이것이 최선의 방법 일 것입니다. –
콘솔 응용 프로그램은 장기 실행이 반드시 필요한 것은 아닙니다. 그것이 말하게되면, 당신은 그것을 할 수 있습니다. 콘솔이 종료되지 않도록하려면 "quit"과 같은 종료 문자열을 기다리기 위해 Console.ReadLine에 콘솔 루프를 만들어야합니다.
코드를 10 분마다 실행하려면 System.Threading.Timer를 호출하고 10 분 간격으로 실행 메서드를 가리 키십시오.
public static void Main(string[] args)
{
using (new Timer(methodThatExecutesEveryTenMinutes, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)))
{
while (true)
{
if (Console.ReadLine() == "quit")
{
break;
}
}
}
}
private static void methodThatExecutesEveryTenMinutes(object state)
{
// some code that runs every ten minutes
}
편집은 그래도 질문에 대한 일본 은행의 코멘트를 좋아한다. 장기 실행 응용 프로그램이 정말로 필요한 경우 Windows 서비스로 만드는 오버 헤드를 고려하십시오. 개발 오버 헤드가 있지만 코드를 실행하는 훨씬 안정적인 플랫폼을 얻게됩니다.
감사하지만이 샘플 코드는 작동하지 않습니다 – Gold
무엇이 작동하지 않습니까? 나는 그것을 게시하기 전에 그것을 테스트했다. methodThatExecutesEveryTenMinutes에 Console.WriteLine을두고 FromMinutes (10)를 FromSeconds (5)로 변경하여 확인하십시오. 5 초마다 콘솔에 인쇄됩니다. –
@MichaelMeadows 당신의 대답은 내가 찾고있는 것이지만 Windows 서비스는 console.writeline과 같은 출력 피드백을 제공하지 않으므로 콘솔 응용 프로그램을 열어두면 프로그램의 출력을 검사하여 정상적으로 실행되는지 확인할 수 있습니다 . 일종의 자기보고입니다. –
참고 : 콘솔 응용 프로그램을 종료하는 것은 매우 쉽습니다. 이 백그라운드 작업이 중요하다면 Windows 서비스 구현을 선택하십시오. 또는 WTS에 관한 nandos의 게시물을 고려하십시오. – boj