所以这是我第一次以编程方式创建Windows服务或计划任务,我很困惑选择哪一个。我查看了各种文章,例如http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx,scheduled task or windows service等等,但不能真正决定两者之间
以下是我的情景:
我的应用程序将从数据库中获取几个dll的代码路径,使用MSTest.exe执行DLL并将结果记录回Db。这可能每2-3小时重复一次。现在我倾向于预定任务,因为我不必担心与内存相关的问题,但需要一些专家建议。
P.S。 :DLL包含调用各种服务器上部署的应用程序的Web服务的测试方法
提前感谢您的帮助
答案 0 :(得分:11)
计划任务对您的方案更合适。当操作系统已经提供调度基础架构时,我认为在Windows服务上构建调度机制并不是很有意义。
对于必须随时响应事件而非特定和修复周期的进程,Windows服务更合适。这就是他们一直在运行的原因。一个例子是SQL Server服务。
这个例外可能是需要每隔一秒左右运行一次的任务。在那个角落的情况下,Window Service可能是最好的解决方案。对于您的具体时间表,我毫不怀疑计划任务会更好地适应。
答案 1 :(得分:0)
虽然这篇文章已经有几个月的历史了,但是如果它对“运行用户是否登录”问题对其他人有帮助,可能会有一个解决方案:从控制台项目开始,然后将类型更改为Windows App,如上所述Run code once and exit formless app: Windows Forms or WPF... does it matter?: “如果你从未展示过UI,你应该从WinForms项目开始(WPF项目设置你不想要的额外项目元数据),然后删除对System.Windows.Forms.dll的引用。或者,从控制台项目开始,然后将输出类型更改为Windows应用程序。“