每小时Windows服务我能够构建一个Windows服务并安装它。我很好奇如何每小时运行此服务?我希望它定期每小时运行一次。我还需要知道它运行的时间范围,以便我可以将其存储在某个地方。我怎样才能做到这一点?编辑:此服务将安装在许多计算机上,因此,我不想在100台服务器上创建计划任务。如果您希望您的任务定期运行而不是连续运行,您应该考虑使用任务计划程序。如果您需要将您的代码作为服务,但每小时“激活”一次,最简单的方法是让您的服务成为一个COM对象,并且每小时安排一个简单的任务来调用创建COM对象并调用的jscript/vbscript简单的方法。另一种方法是使用任何等待API来“浪费”一个小时而不消耗周期。请注意,您还必须考虑一些有趣的设计决策,具体取决于您的场景:其中一些由任务调度程序处理,因此我强烈建议您在代码中等待一个小时。您可以创建每小时运行一次的计划任务来运行服务或发送消息以“唤醒”。然后,在定时任务请求中传递当前时间,或者让程序在醒来时获取当前时间。TaskSchedulerManagedWrapper可以帮助您以编程方式进行设置;你也可以谷歌其他资源。有几种选择。你可以睡一个小时。您可能更适合计划任务,而不是服务。线程.睡眠(1000*60*60);Thread.Sleep(TimeSpan.FromHours(1));这样代码更具可读性Thread.Sleep()解决方案将确保您的服务将以一小时为间隔运行,而不是每小时运行一次,即每个任务将在1小时以上开始运行任务。考虑在您的服务中使用Timer。这将是一个更健壮的解决方案,因为您可以控制任务何时运行、监控其进度等。请记住,每个Timer事件都会在另一个线程中触发,如果任务运行时间超过一个小时,您可能需要等待为第一个任务完成以避免并发任务。任务调度程序可能是个好主意,但服务就是为此而设计的。服务很容易安装并且有适当的文档记录。您需要做的就是,当服务启动时,您可以安装一个系统定时器(System.Threading.Timer)或者也有一个定时器。以上就是C#学习教程:每小时运行一次的Windows服务分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
