我应该在哪里将代码放在C#服务中

时间:2018-09-13 14:27:28

标签: c# events service

我写了一点服务,每分钟检查一些文件夹并将内容发送到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 方法而不是事件

1 个答案:

答案 0 :(得分:0)

您的每分钟运行的应用程序逻辑应放在事件OnTimedEvent中。

在此处的Microsoft文档中了解更多信息,其中提供了有关如何创建Windows Service应用程序的演练:MS Docs - Walkthrough: Create a Windows service app

  

可以只调用一次onStart方法,然后让事件完成其余工作吗?

是的,OnStart应该只执行一次,即服务启动时。

  

还是我应该每分钟运行一次onStart方法而不是事件?

否,OnStart应该只运行一次。

建议:如果您期望大量文件或文件大小很大,则可能需要延长时间间隔。