我写了一点服务,每分钟检查一些文件夹并将内容发送到FTP文件夹。在 OnStart 方法的服务内部,我为每分钟运行的事件设置了计时器:
protected override void OnStart(string[] args)
{
aTimer = new Timer();
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 60000;
aTimer.Enabled = true;
}
事件:
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
some logic here....
}
现在我的问题是:可以只调用一次onStart方法,然后让事件完成剩下的事情吗?还是我应该每分钟运行 onStart 方法而不是事件?
答案 0 :(得分:0)
您的每分钟运行的应用程序逻辑应放在事件OnTimedEvent中。
在此处的Microsoft文档中了解更多信息,其中提供了有关如何创建Windows Service应用程序的演练:MS Docs - Walkthrough: Create a Windows service app
可以只调用一次onStart方法,然后让事件完成其余工作吗?
是的,OnStart应该只执行一次,即服务启动时。
还是我应该每分钟运行一次onStart方法而不是事件?
否,OnStart应该只运行一次。
建议:如果您期望大量文件或文件大小很大,则可能需要延长时间间隔。