如何在控制台应用程序中使用计时器?

发布于 2024-07-18 00:27:11 字数 97 浏览 4 评论 0原文

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

我怎样才能做到这一点?

谢谢

How can I use a timer in my console application? I want my console application to work in the background and to do something every 10 minutes, for example.

How can I do this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

混吃等死 2024-07-25 00:27:11

控制台应用程序不一定要长时间运行。 话虽这么说,你可以做到。 为了确保控制台不只是退出,您必须让控制台在 Console.ReadLine 上循环以等待某些退出字符串,例如“quit”。

要每 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 服务的开销。 虽然存在一些开发开销,但您可以获得更稳定的平台来运行代码。

Console applications aren't necessarily meant to be long-running. That being said, you can do it. To ensure that the console doesn't just exit, you have to have the console loop on Console.ReadLine to wait for some exit string like "quit."

To execute your code every 10 minutes, call System.Threading.Timer and point it to your execution method with a 10 minute interval.

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
}

EDIT

I like Boj's comment to your question, though. If you really need a long-running application, consider the overhead of making it a Windows Service. There's some development overhead, but you get a much more stable platform on which to run your code.

余生共白头 2024-07-25 00:27:11

您只需使用 Windows 任务计划程序每 10 分钟运行一次控制台应用程序即可。

You can just use the Windows Task Scheduler to run your console application every 10 minutes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文