일단 시작된 Windows 서비스는 매 X 시간마다 실행됩니다. 완료 프로세스는 상당히 집중적이므로 백그라운드 작업자를 사용하고 싶습니다. 설정 파일을 사용하여 실행과 서비스가 실행 된 마지막 시간을 모두 저장합니다.주기적으로 실행되는 Windows 서비스
나는 이것을 할 수있는 최선의 방법이 확실하지 않다. 즉, 서비스가 가능한 한 적은 자원을 사용하여 유휴 상태로 있도록하고, 실행될 때 백그라운드 작업자로 실행해야한다. 그런 다음 유휴 모드로 돌아갑니다.
저는 2 명의 배경 작업자를 생각해 보았습니다. 루프의 각 반복을 생성, 완료되면 파괴 하위 작업자와
while (true)
{
//create new background worker and run
Thread.Sleep(Settings.Default.SleepTimeHours * 3600000);
}
: 첫 번째 노동자는 전용 지역과 같이 뭔가를 실행하는 서비스에 대한 변수가 될 것입니다. 취소를 지원하려면 서비스에서 두 번째 작업자의 로컬 인스턴스를 사용할 수 있어야하지만 현재 프로세스가 실행되고 있지 않으면 null이됩니다. 보조 작업자가 완료되면 내보고를 보내고 설정 파일에서 마지막 실행 시간을 설정 한 다음 작업자를 처분하고 참조를 null로 설정합니다.
더 좋은 방법이나 최선의 방법이 있는지 궁금합니다.
덕분에 우리 회사에서
- 내가 옵션으로, 그러나 건축가는 Windows 서비스가되고 싶어 것을 제안했다. – Josh
@ Broken Bokken : 두 세계 모두의 베스트 : http://www.genericgeek.com/Enable-a-service-from-command-line;) – JustLoren