我想为自己创建一个应用程序,用于监控使用不同程序(浏览器,MS office等...)的时间,并每隔x秒将收集到的数据保存到数据库中。
经过一番研究后,我找到了2个解决方案:Windows服务或Windows Form应用程序,没有任何形式(后台进程)。
我理解Windows服务和普通应用程序之间的基本区别。问题是,如果可能有任何关键方面,为什么不使用一个或另一个解决方案,你会建议考虑RAM / CPU效率。
谢谢
答案 0 :(得分:0)
Windows服务和Windows窗体应用程序之间的最大区别是Windows服务没有GUI或用户界面。
您需要问自己的是,您是希望此过程只是在后台运行并将信息转储到数据库中,还是需要某种用户交互?
如果在程序运行时需要用户界面或某些用户交互,那么Windows表单应用程序会更好。如果您希望它在后台安静地完成工作,请使用服务。此外,服务可以通过Windows安静地启动,您可以限制访问谁可以卸载服务。
就内存或CPU使用而言,服务将消耗更少的内存,因为Windows表单应用程序必须为至少一种表单(主GUI表单)分配内存。即使你隐藏了这个表单,它仍然在内存中(只是没有在桌面上显示出来)。
根据您在问题中指定的要求,我会使用Windows服务。
答案 1 :(得分:0)
RAM / CPU几乎相同
但是假设一个人会拿另一个K的记忆,但是另一个(或者不是另一个)需要另外20纳秒才能运行......这对你来说会改变什么?如果它会 - 确定你可以接受哪些值,那么,如果程序占用太多内存/太多内存 - 配置占用大部分CPU时间/内存 - 并优化它...这不会是程序win-form app,或win-service ......
Win服务会稍微调试一下(在开头放Debugger.Launch
或Debugger.Break
......这里..问题解决了。)
但是我更喜欢赢得服务...我不明白为什么没有表格就把win-forms应用程序放进去......这就像没有轮子的车,因为你需要一个引擎。 ..为什么不使用发动机?!为什么不使用设计为在后台运行的引擎,您可以控制它何时(或为什么)启动,具有哪些权限等?
答案 2 :(得分:0)
如果您只想要“花在应用程序上的时间”,我认为这是特定可执行文件运行的时间,那么Windows服务绝对是您的选择。我唯一要提醒您的是,特定配置文件在特定配置文件下运行的时间量不一定代表使用它的时间量。当然,应用程序可以运行并最小化。在这种情况下,当记录器实际上没有被使用时,你的记录器将显示“正在使用”的应用程序。
我个人认为Windows Services比WinForms更令人愉快。但是,这是个人意见的问题。
祝你好运,ž