【发布时间】:2012-09-08 21:19:16
【问题描述】:
我创建了一个 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% 理解服务是如何工作的......
【问题讨论】:
-
有趣的问题。我想知道,但从未尝试过。哦,它肯定会编译——问题真的是:它工作。鉴于 API 接受一个数组,我的默认假设是“是的,可以正常工作”。但是……没试过。当然,既然服务无论如何都需要启动一个新线程,你可以只用一个服务实例来启动3组操作,
-
你看到了吗? stackoverflow.com/questions/1688275/… -- 讨论如何而不是为什么。这确实是一个设计问题,取决于你在做什么。