每隔一段时间执行自定义操作(应用程序级别)的最佳架构是什么?
定义静态类,在其中定义计时器,并设置间隔。在计时器的滴答事件中执行操作:看起来有点脏和不可靠。
定义一个Windows服务,处理服务中的操作:可靠,但需要更多工作,并且最好使用更少的代码行来获得更简单的解决方案。此外,这需要访问主机系统(如果您在共享主机上,则不适用)。
是否有任何特定的设计模式被认为是此类工作的最佳实践?
答案 0 :(得分:2)
创建控制台应用程序并使用Windows任务计划程序。
答案 1 :(得分:1)
(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)
{
//
}
}
在启动运行时安装。使用这种组合可以为您的应用程序添加更多“可靠性”+更容易调试然后服务+更容易设置然后服务==更容易维护然后服务。
问候。