Служба Windows запускается каждые один час
У меня есть служба windows, которая должна работать в течение каждого часа. Но проблема в том, что он начинается в 6.00 утра и заканчивается в 6.03 утра, а затем снова через час он начинает работать в 7.03 утра, но я хочу, чтобы он снова работал в 7.00 утра.
Любая помощь будет оценена по достоинству.
Код, который я написал, находится ниже
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Ashworth.WindowService.GradeDataFeed { public partial class GradeDataFeedService : ServiceBase { private readonly System.Timers.Timer _timer; GradeDataFeedManager gradeDataFeedManager; //Thread managerThread = null; public GradeDataFeedService() { InitializeComponent(); _timer = new System.Timers.Timer(); _timer.Elapsed += timer_Elapsed; } protected override void OnStart(string[] args) { _timer.Interval = 60 * 1000; _timer.Enabled = true; _timer.Start(); } private void timer_Elapsed(object sender, EventArgs e) { // Only create / start the manager if has been done so already // It should only all in once, since the manager object will not // be null and since the timer will be disabled after first run if (gradeDataFeedManager == null) { gradeDataFeedManager = new GradeDataFeedManager(); // Create thread for manager //managerThread = new Thread(shipmentTrackingNumberProcessorManager.Start); // Start the thread gradeDataFeedManager.Start(); // Stop timer, it only needs to run once to kick off the manager _timer.Enabled = false; } } protected override void OnStop() { if (gradeDataFeedManager != null) { gradeDataFeedManager.Stop(); } } } }
F-ES Sitecore
Вы можете повторно инициализировать таймер после завершения работы, поэтому вычислите количество секунд до следующего часа, установите его в качестве интервала и снова включите таймер. Или же пусть он просыпается каждую секунду и смотрит, не наступил ли еще следующий час.