2010-12-03 36 views
13

我很好奇Main()方法在windows服務中的工作方式,因爲它與服務控制管理器有關。何時執行?它如何掛鉤到操作系統?安裝服務時是否執行?我知道它是在SCM調用OnStart()時執行的,OnStop()它已經在運行,所以我們不會再執行它。C#Windows服務主要方法

如果有人知道很多關於這個領域,可以詳細說明,我將不勝感激。

我是一個程序員expeirenced,我不需要什麼樣的主要方法做一般的描述......它是如何工作的,同時使用Windows服務。

+0

你應該知道main方法只對編譯器「主」,所以這與啓動windows服務無關。 – 2010-12-03 22:54:57

回答

13

當您使用控制面板小程序告訴服務啓動SCM啓動進程時;這會導致Main()內部的代碼運行。 Main()方法中的ServiceBase.Run()行將關聯的服務掛接到SCM,SCM然後爲ServiceBase.Run()方法調用中指定的每個服務調用OnStart()方法。

+1

如果Main()引發異常,會發生什麼情況?控制面板小程序是否通知用戶出現問題? – PaulK 2015-03-06 14:50:30