HI guys, 我在C#中設計了一個Windows服務,需要時間來啓動(60-70秒)。我想知道它通常需要很長時間才能啓動,或者它是我的代碼花費了很多時間。 我有兩個線程,每6秒和1分鐘運行。C#windows服務是否需要時間才能在60-65秒左右開始?
如果需要那麼多時間,有人可以告訴我爲什麼需要那麼多時間。 不詳細只是一個概述。
HI guys, 我在C#中設計了一個Windows服務,需要時間來啓動(60-70秒)。我想知道它通常需要很長時間才能啓動,或者它是我的代碼花費了很多時間。 我有兩個線程,每6秒和1分鐘運行。C#windows服務是否需要時間才能在60-65秒左右開始?
如果需要那麼多時間,有人可以告訴我爲什麼需要那麼多時間。 不詳細只是一個概述。
如果您的服務在啓動過程中做了很多工作(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()將很快完成。
這取決於你正在運行的服務onStart() 然後theres一般系統的性能,你檢查了其他服務的啓動時間。 – 2010-01-15 16:13:01
我只是設置定時器並初始化它們 – alice7 2010-01-15 16:13:45
你確定沒有其他東西,比如循環檢查有時在磁盤驅動器中循環的磁盤,可能會導致代碼變慢,特別是使用flopy驅動器時(例如,如果你有它們) – 2010-01-15 16:17:51