1

我正在.Net 中使用 C# 制作一个简单的调度程序。它所做的只是每分钟对 SQL Server 数据库中的表执行一次简单的选择语句(这不需要扩展或任何东西......数据库没有高负载)。这是我建议的实现:

static void Main(string[] args)
{
    while (true)
    {
        System.Threading.Thread.Sleep(timeout); // timeout is, say, 60000
        CheckTable();
    }
}

这个可以吗?有什么更好的方法?

ps有人建议使用Windows Forms Timer类......但这似乎有点过分了。

干杯!

4

3 回答 3

4

虽然它在技术上是合法的,但您可能最好使用计时器。它们不需要设置更多代码,您可以让运行时负责生成新线程。如果您需要在另一个程序中再次使用它,它也会造成计时器不会的性能瓶颈。

计时器将添加更多代码,因为您需要使用计时器触发事件​​。

于 2008-10-03T23:26:49.860 回答
1

关闭。

  1. 这将每(1分钟+调用proc的时间)运行一次。也许没关系,也许不是。如果不行,您需要减去运行时间。
  2. 你应该在它周围有一个 try-catch 块。您不希望它仅仅因为临时数据库或网络问题而完全死掉。
于 2008-10-04T04:46:35.707 回答
1

Quartz.net是满足时序需求的一个很好的解决方案。它很容易设置(网站上有很好的教程),并且比定时器更灵活。CronTrigger 非常强大,并且易于配置。

于 2009-02-21T19:33:05.533 回答