1

我有一个控制台应用程序,它应该定期监听远程数据库,如果有新值,那么做一些事情。

通常我创建 Windows 任务计划程序作业以每 2 分钟运行一次此控制台应用程序。我认为另一种选择,在控制台应用程序中,我将有一个类似的代码;

while(true)
{
  ConnectDatabaseAndProcess();
  System.Threading.Thread.Sleep(120000);
}

所以我假设控制台应用程序将始终打开,每个进程将等待 2 分钟并继续。在性能问题上会有什么不同吗?

4

1 回答 1

2

除非您的计算机超载到每两分钟创建一个进程的时间会消耗大量资源,否则让您的程序在循环中等待两分钟以轮询数据库没有任何好处。

使用计划任务的好处是您可以更改计划任务频率(每五分钟一次,或一小时一次,或其他),而无需修改程序。当然,您可以使用应用程序配置文件,但为什么呢?为什么要复制操作系统中已经存在的功能,并且更加灵活。

此外,通过计划任务,您知道程序将在下次重新启动计算机时再次启动轮询操作。如果您依赖程序来提供延迟,您必须记住每次都启动它,或者将它放在启动任务列表中。

此外,当程序闲置时,它会占用其他进程可以使用的内存。

总而言之,使用计划任务是一种更加灵活和强大的解决方案。让程序始终运行所带来的任何边际性能提升(我们说的最多是一秒钟)都远远超过了缺点。

于 2013-01-30T19:30:05.987 回答