閱讀了這個問題: Delphi Windows Service Design,我看到大部分的設計師在TService
的OnExecute
或TThread
方法如下使用此代碼,以保持服務活着。德爾福服務聽TCP或UDP
while not Terminated do
begin
// do something
end;
但是,如果我需要(和我一樣)來創建一個服務(使用印),以便發回一些認證數據由主應用程序發送的消息做出反應,我該怎麼辦這個代碼是什麼,忽略它還是放一些Sleep()
呢?
你並不需要實現'TService'類的'OnExecute'事件的方法。這是可選的。 – TLama
TLama是對的。最好不要使用OnExecute事件。您應該將該邏輯移動到一個單獨的工作線程,該線程在'OnStart'事件中啓動,並在'OnStop'事件中終止。如果'OnExecute'完全不分配,'TService'會爲您SCM請求做出響應。但是,如果'OnExecute'分配,你有責任()'手動調用'ServiceThread.ProcessRequests和服務將停止本身時候'OnExecute'退出。 –