4

我想知道如何每五分钟在后台运行 ac# 程序。下面的代码不是我想作为后台进程运行的,而是想找出使用​​此代码执行此操作的最佳方法,以便我可以在另一个代码上实现它。所以这个过程应该在五分钟增量后运行。我知道我可以使用线程来做到这一点,但现在真的不知道如何实现这一点。我知道这是最好的方法如何在系统启动上运行控制台应用程序,而不出现在显示器上(后台进程)?这要在后台运行,但是我如何让代码以五分钟的增量运行

 class Program
    {
        static void Main(string[] args)
        {
            Console.Write("hellow world");
            Console.ReadLine();
        }
    }
4

4 回答 4

9

这个应用程序应该连续运行,每 5 分钟发出一条消息。
这不是你想要的吗?

class Program
{
    static void Main(string[] args)
    {
        while (true) {
            Console.Write("hellow world");
            System.Threading.Thread.Sleep(1000 * 60 * 5); // Sleep for 5 minutes
        }

    }
}
于 2013-07-02T14:59:46.307 回答
7

为什么不直接使用Windows 任务计划程序

将其设置为以所需的时间间隔运行您的应用程序。它非常适合此类工作,您不必为强制线程睡眠而烦恼,这会产生更多可以解决的问题。

于 2013-07-02T15:02:22.370 回答
2

使用System.Windows.Threading.DispatcherTimer怎么样?

class Program
{
    static void Main(string[] args)
    {
        DispatcherTimer timer = new DispatcherTimer();
        timer.Interval = new TimeSpan(0, 5, 0); // sets it to 5 minutes
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();
    }

    static void timer_Tick(object sender, EventArgs e)
    {
        // whatever you want to happen every 5 minutes
    }

}
于 2013-07-02T15:16:50.683 回答
1

可能每 X 分钟“触发”一个新进程的最简单方法是使用Windows Task Scheduler

您当然可以以编程方式执行类似的操作,例如创建您自己的服务,每 X 分钟启动一次控制台应用程序。


所有这一切都假设您实际上想要在下一次迭代之前关闭应用程序。或者,您可以一直保持它处于活动状态。您可以使用其中一个计时器类定期触发事件,甚至Thread.Sleep在非常简化的场景中......

于 2013-07-02T15:07:04.050 回答