2010-04-02 82 views

回答

7

這是意圖。這裏的想法是,您可以讓一個可執行文件創建「多個服務」,而不僅僅是一種類型的服務。

當向SCM註冊服務時,預計每個服務都是唯一的。這表明(我相信是這樣),你陣列中的每個元素都必須是ServiceBase的唯一實現。

如果你真的只是試圖有相同的服務的多個副本,我會重新考慮你的設計。只要讓服務使用同一個方法觸發多個線程,它將爲單個服務實例提供相同的效果。

+0

多線程是最初的設計,我只是試驗這個。感謝您爲我清理。 – 2010-04-02 17:11:38

+1

應該可以有2個服務實現相同的類型。您只需確保每個服務都有唯一的服務名稱。 如果您想讓2個服務具有相同的功能但使用不同的配置,則此方案特別有用。說不同的共享文件夾來讀取文件或連接到不同的數據庫。 我創建了一個名爲Daemoniq的Windows服務庫。它支持在一個進程中運行多個Windows服務。 http://code.google.com/p/daemoniq/wiki/MultipleWindowsServicesOneProcess。 – 2010-04-05 07:31:52

+0

雖然有可能,但只要分開命名它們,它們本質上就是兩個單獨的服務;)就是說,您的方法很好。 – 2010-04-05 15:44:49