我应该只使用一项新服务()或更多吗?

时间:2012-09-08 21:19:16

标签: c# .net service

我创建了一个Windows服务项目。如果你创建一个新项目,你会得到这样的东西:

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] 
{ 
  new Service1() 
};
ServiceBase.Run(ServicesToRun);

现在我必须在课程Service1()中添加一些函数和计时器,然后一切都很好。

现在让我们说,我的服务应该做一些事情:读取一些文件,删除一些文件夹,检查连接......

所有这些都应该运行异步。什么现在更好?复制Service1()中的所有功能,不更改任何其他内容或为每个“东西”创建一个新类(Service1(),Service2(),...)并添加它们像

ServicesToRun = new ServiceBase[] 
{ 
  new Service1(),
  new Service2() //not sure this will compile
};

只是问。也许我不完全理解服务是如何运作的......

1 个答案:

答案 0 :(得分:0)

对于该问题,这可能有点过于笼统,但Windows服务应执行单个或一组相关功能。一般来说,服务越少越好,但是一旦服务开始做多件事,考虑将它们分开:

  1. 他们需要不同级别的安全性。例如,如果某些功能需要管理员访问而某些功能不需要,请考虑将它们拆分为不同的服务。
  2. 用户可能或者想要一个功能运行(即服务)而不是另一个功能。例如,某些功能可能取决于可选组件或可能未安装的组件。