C#,Windows服务:ServiceBase.Run,​​具有多个相同类型的服务

时间:2010-04-02 16:50:21

标签: c# windows-services

我正在尝试通过ServiceBase.Run(ServiceBase[] )运行几个类似的服务,但它只运行第一个。 MSDN没有明确否认这一点;这段摘录是否意味着它们都必须是不同的类型? (粗体是我,而不是MSDN)

  

在服务可执行文件的main()函数中调用此重载以加载关联服务的数组。

1 个答案:

答案 0 :(得分:7)

这就是意图。这里的想法是,您可以使用单个可执行文件创建“多个服务”,而不仅仅是单一类型的服务。

当向SCM注册服务时,预期每项服务都是唯一的。这表明(我相信情况就是如此)数组中的每个元素都必须是ServiceBase的唯一实现。

如果您真的想要拥有相同服务的多个副本,我会重新考虑您的设计。只需使用相同的方法启动多个线程的服务,它将为单个服务实例提供相同的效果。