我想实现一个循环功能来执行一些激活的事情,比如每个星期一。如何实现循环功能?
在服务器中连续运行的Window Forms应用程序中以编程方式执行此操作的方法是什么?
我对延迟很熟悉,但是我没有实施延长一周或一个月的延迟。
我想实现一个循环功能来执行一些激活的事情,比如每个星期一。如何实现循环功能?
在服务器中连续运行的Window Forms应用程序中以编程方式执行此操作的方法是什么?
我对延迟很熟悉,但是我没有实施延长一周或一个月的延迟。
在我看来最好的办法是写在一个控制台应用程序这个功能,并使用计划任务的服务器上的任务(或SQL调度程序,或者你最喜欢的调度工具),在任何时间间隔执行它,你需要。
我不喜欢看到应用程序在特定时间执行的代码中存在“隐藏”任务。没有通知而失败的机会太多。
使用排程工具,您可以查看/更改排程而无需触摸源代码。
作为便笺,Windows窗体应用程序应该在客户上运行,而不是服务器上。
理想情况下,您应该在Windows计划任务下执行此操作。然后,它会处理复发和时间。
如果你需要通过winforms应用程序来做到这一点,那么有两种选择 - 周期性时间轮询或阻塞等待/睡眠。
使用周期性时间轮询,您可以设置应用程序必须运行的时间间隔。然后在循环中检查这段时间是否已过,并采取行动。您可以在回路中设置所需的准确级别。
由于阻塞等待,您正在运行线程,直到需要执行为止。这种方法唯一的问题是如果服务器重新启动,应用程序应该重新获得它的状态并恢复任何睡眠操作。这种方法的准确性应该在几秒钟内(取决于服务器的时间漂移)。
安排Windows作业? –
我认为我们需要更多的细节,但是你可以写一些执行上述功能的东西,然后根据规范安排它与Windows任务调度程序一起运行。 – turbo
请不要在服务器上使用winforms应用程序。使用服务或预定批次。这样你就不需要登录了。 –