gpt4 book ai didi

c#-4.0 - 在 VS 2010 中向 Windows 服务添加 System.Threading.Timer

转载 作者:行者123 更新时间:2023-12-04 17:27:24 27 4
gpt4 key购买 nike

这是我第一次使用 Windows 服务,我正在学习。
我正在使用 VS 2010、Windows 7 创建一个带有计时器的 Windows 服务。我也用谷歌搜索并浏览了这个网站 Use of Timer in Windows Service , Best Timer for using in a Windows service但我仍然对在 Windows 服务组件中为计时器编码的位置感到困惑

我在 service1.cs 类中有一个 OnStart 方法和 OnStop 方法
我将在哪里为计时器编写代码以执行该功能(不启动 Windows 服务)?

最佳答案

下面是如何执行此操作的示例。它每 10 秒向应用程序日志(如事件查看器中所见)写入一条消息,直到服务停止。在您的情况下,将您的周期性逻辑放在 OnElapsedEvent() 方法中。

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.");
}

我在 SO 上有一些详细的答案,当您开始使用 Windows 服务时,它们可能会有所帮助。
  • Creating a Windows service using C#
  • How to have your service install/uninstall itself without using InstallUtil.exe
  • 关于c#-4.0 - 在 VS 2010 中向 Windows 服务添加 System.Threading.Timer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456402/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com