2009-04-16 54 views
1

如何在我的控制台应用程序中使用计时器?例如,我希望我的控制台应用程序在后台工作,并且每10分钟执行一次操作。如何在我的控制台应用程序中使用计时器?

我该怎么做?

感谢

+4

只需注意:杀死控制台应用程序非常简单。如果这个后台工作很重要,那么选择windows服务实现。或者考虑nandos关于WTS的文章。 – boj 2009-04-16 21:29:13

回答

2

你可以使用Windows任务调度程序来运行你的控制台应用程序每隔10分钟。

+0

这可能是这样做的最好方法。 – 2009-04-16 21:36:14

4

控制台应用程序不一定意味着长时间运行。这就是说,你可以做到这一点。为了确保控制台不会退出,您必须让Console.ReadLine上的控制台循环等待某个退出字符串,如“退出”。

要每10分钟执行一次您的代码,请调用System.Threading.Timer并以10分钟为间隔将其指向您的执行方法。

public static void Main(string[] args) 
{ 
    using (new Timer(methodThatExecutesEveryTenMinutes, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10))) 
    { 
     while (true) 
     { 
      if (Console.ReadLine() == "quit") 
      { 
       break; 
      } 
     } 
    } 
} 

private static void methodThatExecutesEveryTenMinutes(object state) 
{ 
    // some code that runs every ten minutes 
} 

编辑

我喜欢日本央行对你的问题的评论,虽然。如果您真的需要一个长时间运行的应用程序,请考虑将其作为Windows服务的开销。有一些开发开销,但是你有一个更稳定的平台来运行你的代码。

+1

谢谢,但这个示例代码不工作 – Gold 2009-04-17 05:50:57

相关问题