5

我创建了一个 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
};

只是问问。也许我没有 100% 理解服务是如何工作的......

4

1 回答 1

0

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

  1. 它们需要不同级别的安全性。例如,如果某些功能需要管理员访问权限而有些不需要,请考虑将它们拆分为不同的服务。
  2. 用户可能或希望运行一个功能(即服务)而不是另一个。例如,某些功能可能取决于可选组件或可能未安装的组件。
于 2012-09-09T05:04:04.733 回答