及时进行操作

时间:2011-07-10 11:03:06

标签: c# asp.net .net-4.0

每隔一段时间执行自定义操作(应用程序级别)的最佳架构是什么?

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

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

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

2 个答案:

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

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

问候。