这是在C#中制作简单“调度程序”的可接受方式吗?

时间:2008-10-03 23:16:21

标签: c# sql-server scheduling

我正在使用.Net中的C#创建一个简单的调度程序。它所做的就是每分钟对SQL Server DB中的表执行一次简单的select语句(这不需要扩展或任何东西...... db没有高负载)。这是我提出的实施方案:

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

这可以吗?什么是更好的方式?

P.S。有人建议使用Windows窗体计时器类......但这看起来有点矫枉过正。

干杯!

3 个答案:

答案 0 :(得分:4)

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

虽然您需要使用计时器触发事件​​,但计时器会添加更多代码。

答案 1 :(得分:1)

关闭。

  1. 每次运行(1分钟+时间来调用proc)。也许那没关系,也许不是。如果不行,则需要减去运行所花费的时间。
  2. 你应该有一个try-catch块。您不希望它完全因为临时数据库或网络问题而死亡。

答案 2 :(得分:1)

Quartz.net是时间需求的良好解决方案。它很容易设置(网站上的好教程),并且比Timers提供了更多的灵活性。 CronTrigger非常强大,易于配置。

相关问题