以一定间隔执行自定义操作(应用程序级别)的最佳体系结构是什么?及时执行操作
定义一个静态类,在其中定义一个定时器,并设置间隔。在定时器的tick事件中执行操作:看起来有点脏并且不可靠。
定义一个windows服务,处理服务中的操作:可靠,但需要更多的工作,最好有一个简单的解决方案和更少的代码行。此外,这需要访问主机系统(如果您在共享主机上,则不适用)。
是否有任何特定的设计模式被认为是这类工作的最佳实践?
以一定间隔执行自定义操作(应用程序级别)的最佳体系结构是什么?及时执行操作
定义一个静态类,在其中定义一个定时器,并设置间隔。在定时器的tick事件中执行操作:看起来有点脏并且不可靠。
定义一个windows服务,处理服务中的操作:可靠,但需要更多的工作,最好有一个简单的解决方案和更少的代码行。此外,这需要访问主机系统(如果您在共享主机上,则不适用)。
是否有任何特定的设计模式被认为是这类工作的最佳实践?
创建控制台应用程序并使用Windows任务计划程序。
(1)解决方案的一个严重问题是,如果PC重新启动,在几天后关闭/切换是您需要重新启动您的应用程序。
void InstallMeOnStartUp()
{
try
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
Assembly curAssembly = Assembly.GetExecutingAssembly();
key.SetValue(curAssembly.GetName().Name, curAssembly.Location);
}
catch (Exception ex)
{
//
}
}
在启动时运行安装。使用这种组合可以为您的应用程序增加更多的“可靠性”+更容易的调试然后服务+更容易的设置然后服务==更容易维护然后服务。
问候。
如果你是托管的,唯一的方法是依靠页面点击 - 你不会真的能够有准确的计时器。 –