где я должен поместить код в службу C # - PullRequest
0 голосов
/ 13 сентября 2018

Я написал небольшой сервис, который каждую минуту проверяет какую-то папку и отправляет содержимое в папку 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 метод каждую минуту вместо event ?

1 Ответ

0 голосов
/ 13 сентября 2018

Логика вашего приложения, которая запускается каждую минуту, должна находиться внутри события OnTimedEvent.

Подробнее в документации Microsoft здесь, в которой дается пошаговое руководство по созданию приложения-службы Windows: Документы MS - Пошаговое руководство. Создание приложения-службы Windows

это нормально вызывать метод onStart только один раз и позволить событию делать все остальное?

Да, OnStart должен выполняться только один раз, то есть когда запускается ваша служба.

или мне следует запускать метод onStart каждую минуту вместо события?

Нет, OnStart должен запускаться только один раз.

Предложение. Возможно, вы захотите увеличить временной интервал, если вы ожидаете много файлов или если размер файла будет большим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...