2010-01-15 2 views
3

안녕하세요, 저는 C#으로 Windows 서비스를 설계했으며 시작하는 데 시간이 걸립니다. (60-70 초). 일반적으로 시작하는 데 오랜 시간이 걸리거나 그렇게 많은 시간이 걸리는 코드인지 궁금합니다. 6 초마다 1 분씩 실행되는 두 개의 스레드가 있습니다.C# windows 서비스는 약 60-65 초의 시작 시간이 필요합니까?

그리고 많은 시간이 필요하다면 누군가가 왜 그렇게 많은 시간이 걸릴지 말해 줄 수 있습니까? 자세히보기가 아닙니다.

+4

서비스에서 실행중인 서비스에 따라 다릅니다. 그런 다음 일반적인 시스템 성능을 확인한 후 다른 서비스의 시작 시간을 확인 했습니까? –

+0

그냥 타이머를 설정하고 초기화하는 것입니다. – alice7

+1

Diskdrives를 통해 반복되는 디스크를 검사하는 루프와 같이 특히 플로피 드라이브 (예 : 플로피 드라이브가있는 경우)가 느려지는 루프가 있는지 확인하십시오. –

답변

7

서비스가 시작 중에 작동하는 경우 (service.OnStart) 시작하는 데 시간이 오래 걸릴 수 있습니다.

서비스를 즉시 시작하려면 다른 스레드로 작업을 지연하십시오.

정상적인 서비스 시작이 거의 즉각적이라고 가정합니다.

 protected override void OnStart(string [] args) 
    { 
System.Threading.Thread workerThread =new System.Threading.Thread(longprocess()); 
workerThread.start(); 
    } 

private void longprocess() 
{ 
///long stuff 
} 

이 서비스가 그 longprocess을하는 것은 보증되지 않습니다 빨리 시동 할 수 있도록되지만처럼 오디드 말했다

+0

Ony 건 그것은 매 6 초와 1 분마다 실행되는 두 개의 타이머를 설정합니다. 마지막 스레드는 서비스가 시작될 때 DB의 데이터를 검사합니다. 이것이 이유라고 생각하십니까? – alice7

+0

최종 스레드가 데이터를 확인하고 이에 따라 조치를 취합니다. 메일 등을 보내듯이 – alice7

+0

마지막 스레드가 될 수 있습니다. DB를 확인하고 이메일을 보내는 데 오랜 시간이 걸릴 수 있습니다. – Oded

2

은() 신속하게 수행됩니다.

관련 문제