如何在后台连续运行c控制台应用程序

本文关键字:控制台 应用程序 运行 连续 后台 | 更新日期: 2023-09-27 18:20:53

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

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

如何在后台连续运行c控制台应用程序

这个应用程序应该连续运行,每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
        }
    }
}

为什么不直接使用Windows任务调度程序?

将其设置为以所需的间隔运行您的应用程序。它非常适合这种工作,而且你不必费力地强迫线程休眠,这会产生更多的问题,而它可以解决这些问题。

使用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
    }
}

每X分钟"启动"一个新进程的最简单方法可能是使用Windows任务调度程序。

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


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