我正在使用从某些设备下载数据的Windows服务。如何安排我的Windows服务每10分钟运行一次。我想每隔10分钟从这些设备下载数据。这是一个很好的方法使用计时器并将代码放在Elapsed方法中?或者还有其他方法来执行此任务吗?
答案 0 :(得分:3)
不确定您在此过程中有多远,但假设您刚刚开始,请按照分步说明here创建可以使用InstallUtil.exe安装的基本Windows服务。如果您希望安装和卸载Windows服务可执行文件,请按照分步说明here进行操作。这应该可以帮到你。
现在,要让每10分钟运行一次,你需要一个计时器。这是一个可能的样子。
using System.Timers;
public partial class Service1 : ServiceBase
{
private Timer _timer;
protected override void OnStart(string[] args)
{
_timer = new Timer(10 * 60 * 1000); // 10 minutes expressed as milliseconds
_timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
_timer.AutoReset = true;
_timer.Start();
}
protected override void OnStop()
{
_timer.Stop();
_timer.Dispose();
}
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
{
// Do your work here...
}
HTH
答案 1 :(得分:2)
您可能希望在输入OnTimerElapsed方法时暂停/停止计时器,并在退出方法之前恢复它,如果您的处理可能会运行超过10分钟。