我有,其中包括5個任務main方法的窗口服務:雖然(true)循環陷在Windows服務沒有任何日誌或事件日誌
- 4 System.Timers.Timer()
- 1方法與無窮遠環雖然(真)由分隔符螺紋
NB處理:每個方法執行之前,如「發送命令現在開始......」的描述是寫在.log文件
昨天WH我檢查了日誌,我注意到所有4個定時器方法都登錄到日誌文件並執行代碼,但帶有無限循環的方法while(true)什麼也沒有記錄。
你能否給我一些關於什麼會導致無限循環的建議?
private void StartThread(){
if (_Thread != null){
if (_Thread.IsAlive){
return;
}
}
Log.Write("thread started.");
_Thread = new Thread(SchedulerWorker);
_Thread.IsBackground = true;
_Thread.Name = "scheduler thread";
_Thread.Priority = ThreadPriority.Lowest;
_Thread.Start();
}
private void SchedulerWorker(){
while (true){
try{
DoScheduleWork();
}
catch (Exception ex){
Log.Write("Worker exception : " + ex);
}
Thread.Sleep(TIMER_INTERVAL);
}
}
您將需要顯示您的無限循環的代碼,正如讓我們面對它,它的名字確實意味着它會卡住! – BugFinder 2011-06-16 15:41:13
-1:需要更多信息 - 顯示循環的一些代碼將有所幫助。 – 2011-06-16 15:41:41
*「什麼會導致無限循環卡住」*:D ...是否有可能無限循環的線程無法啓動?這似乎是一個明顯的解釋,因爲你說它記錄了第一個動作。另外,它有可能正在緩存寫入日誌文件,因此它會進入無限循環,永遠不會刷新到磁盤(或任何地方)。 – 2011-06-16 15:41:56