2011-07-10 97 views
1

以一定间隔执行自定义操作(应用程序级别)的最佳体系结构是什么?及时执行操作

  • 定义一个静态类,在其中定义一个定时器,并设置间隔。在定时器的tick事件中执行操作:看起来有点脏并且不可靠。

  • 定义一个windows服务,处理服务中的操作:可靠,但需要更多的工作,最好有一个简单的解决方案和更少的代码行。此外,这需要访问主机系统(如果您在共享主机上,则不适用)。

是否有任何特定的设计模式被认为是这类工作的最佳实践?

+0

如果你是托管的,唯一的方法是依靠页面点击 - 你不会真的能够有准确的计时器。 –

回答

2

创建控制台应用程序并使用Windows任务计划程序。

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) 
     { 
      // 
     } 
    } 

在启动时运行安装。使用这种组合可以为您的应用程序增加更多的“可靠性”+更容易的调试然后服务+更容易的设置然后服务==更容易维护然后服务。

问候。