2010-04-02 79 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