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

sil*_*lla 5 .net c# service

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

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] 
{ 
  new Service1() 
};
ServiceBase.Run(ServicesToRun);
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

只是问问而已.也许我不理解100%服务如何运作......

akt*_*ton 0

对于这个问题来说,这可能有点太笼统了,但 Windows 服务应该执行单个或一组相关功能。一般来说,服务越少越好,但是,一旦服务开始执行多项操作,请考虑将它们分开,如果:

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