У меня проблема с получением кода для запуска через системный таймер в службе, ну, на самом деле таймер не срабатывает, однако приведенный ниже код не будет работать.
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("Service Started");
//ad 1: handle Elapsed event
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
//ad 2: set interval to 1 minute (= 60,000 milliseconds)
timer.Interval = 60000;
timer.AutoReset = true;
//ad 3: enabling the timer
timer.Enabled = true;
}
protected override void OnStop()
{
timer.Enabled = false;
}
private void OnElapsedTime(object source, ElapsedEventArgs e)
{
EventLog.WriteEntry("TIMER FIRED");
string[] filepaths = Directory.GetFiles(path, Filetype);
string result;
// Process Each String/File In Directory
foreach (string s in filepaths)
{
for (int i = 0; i < filepaths.Length; i++)
{
//Result Returns Video Name
result = Path.GetFileNameWithoutExtension(filepaths[i]);
PreformTranslation(filepaths[i], outputPath + result);
if (File.Exists(path + result))
{
MoveVideoFiles(path + result, outputPath + result);
}
}
}
}
Итак, из средства просмотра событий я вижу, что он фактически отправляет «Таймер сработал» каждую минуту, но не предшествует запуску любого из приведенного ниже кода.Без таймера код работает так, как должен, поэтому изначально я просто пытался вызвать метод, но когда это не сработало, я просто поместил код в обработчик событий, надеясь, что он изменится.Я думаю, что уже потерял, когда я прибегаю к надежде.