C# 调度程序可以按时完成某些任务

C# 调度程序可以按时完成某些任务,c#,windows-services,C#,Windows Services,我在一个调度器上工作,以完成某些任务,如向用户发送电子邮件等。这是一个基本的任务,每5分钟运行一次,并完成它的工作。我需要对它做一些修改,以便它可以按需工作。例如,我需要在上午11:00向一个用户发送电子邮件,在上午11:02向另一个用户发送电子邮件。如何使调度程序在不使用服务器上大量资源的情况下按时运行。我知道如果我需要每分钟发送电子邮件,那么它的睡眠时间应该是一分钟或更少 有什么方法可以按需调用它,或者我需要有一个线程一直处于活动状态,以检查何时做什么,并在那时激活调度程序或其他负责发送电子

我在一个调度器上工作,以完成某些任务,如向用户发送电子邮件等。这是一个基本的任务,每5分钟运行一次,并完成它的工作。我需要对它做一些修改,以便它可以按需工作。例如,我需要在上午11:00向一个用户发送电子邮件,在上午11:02向另一个用户发送电子邮件。如何使调度程序在不使用服务器上大量资源的情况下按时运行。我知道如果我需要每分钟发送电子邮件,那么它的睡眠时间应该是一分钟或更少

有什么方法可以按需调用它,或者我需要有一个线程一直处于活动状态,以检查何时做什么,并在那时激活调度程序或其他负责发送电子邮件的进程

请建议。你的投入将是有价值的


谢谢。

如果你需要每分钟发送电子邮件,最好创建一个服务,让服务每分钟轮询一次数据库,在循环之间查找工作和睡眠1分钟


如果您只需要每小时运行一次代码,最好使用Windows任务计划程序。

感谢您的快速回复。我的情况有点不同。发送电子邮件只是一个例子,它可以在任何时候完成,一分钟的停顿对我来说都不起作用。表中可能有数千条记录,并且每分钟都要检查这些记录是不起作用的。在这种情况下,一个多线程服务将尽可能快地发送电子邮件,并且逻辑将在最后检查新电子邮件,如果最后一批是最好的。我写了一个电子邮件服务,每天使用这个逻辑发送大约50万封电子邮件,没有任何问题。是的,这会起作用。我会相应地修改代码。请让我知道它是否不会占用服务器上的大量资源唯一会占用大量资源的时间是当大量电子邮件发送大型附件时。即使你一次发送30封电子邮件,在运行该服务的服务器和你发送电子邮件的电子邮件服务器之间也会有很多来回(连接、登录、发送电子邮件、断开连接)。我们唯一的问题是从一台服务器到Gmail的连接太多。他们似乎通过IP地址限制了并发连接的数量,而我们一直在达到这个限制。(不是资源问题)。我会将线程数设置为一个设置,这样,如果性能有问题,您可以轻松地向上/向下拨号。