C# 4.0 在VS 2010中将System.Threading.Timer添加到windows服务
这是我第一次使用windows服务,我正在边走边学习。 我正在使用VS2010、Windows7创建一个带有计时器的Windows服务。我也用谷歌搜索和浏览过这个网站,但我仍然不知道在windows服务组件中为计时器编码的位置 我在service1.cs类中有一个OnStart方法和OnStop方法C# 4.0 在VS 2010中将System.Threading.Timer添加到windows服务,c#-4.0,windows-services,timer,C# 4.0,Windows Services,Timer,这是我第一次使用windows服务,我正在边走边学习。 我正在使用VS2010、Windows7创建一个带有计时器的Windows服务。我也用谷歌搜索和浏览过这个网站,但我仍然不知道在windows服务组件中为计时器编码的位置 我在service1.cs类中有一个OnStart方法和OnStop方法 我应该在哪里编写计时器代码来执行该功能(而不是启动windows服务)?使用计划任务来运行小型控制台应用程序或类似程序,而不是处理windows服务可能带来的各种细微差别,会更容易些吗 如果没有,您
我应该在哪里编写计时器代码来执行该功能(而不是启动windows服务)?使用计划任务来运行小型控制台应用程序或类似程序,而不是处理windows服务可能带来的各种细微差别,会更容易些吗 如果没有,您可能需要阅读一篇关于编写windows服务(如或)的普通文章。一旦看到正常服务(不使用计时器的服务)如何运行,就应该知道在哪里添加计时器代码
希望能有所帮助?下面是一个如何做到这一点的示例。它每10秒向应用程序日志写入一条消息(如事件查看器中所示),直到服务停止。在您的例子中,将周期性逻辑放在OneFassedEvent()方法中 我在这里有几个详细的答案,这可能对您开始使用Windows服务有所帮助
private System.Timers.Timer _timer = new System.Timers.Timer();
protected override void OnStart(string[] args)
{
_timer.AutoReset = true;
_timer.Interval = 10000; // 10 seconds
_timer.Elapsed += OnElapsedEvent;
_timer.Start();
}
protected override void OnStop()
{
_timer.Stop();
}
private void OnElapsedEvent(object sender, ElapsedEventArgs e)
{
// Write an entry to the Application log in the Event Viewer.
EventLog.WriteEntry("The service timer's Elapsed event was triggered.");
}