2013-08-07 2 views
1

В настоящее время я работаю над приложением на C#, которое позволит пользователю выбирать один или несколько сетевых дисков или компьютеров и собирать журналы данных из определенной папки (расположение папок всегда одинаково на любом диск/ПК) Файлы должны собираться ежечасно, поэтому в 10 утра приложение будет собирать журналы данных 9AM из каждой указанной папки.Почасовой сбор файлов по сети

Мне бы хотелось, чтобы это происходило в отдельном потоке автоматически по часам, каждый час до тех пор, пока приложение работает в фоновом режиме. Проблема заключается в том, что я не знаю, как настроить эту таймер/почасовую систему, чтобы поток мог быть создан и выполняться ежечасно. Если у кого есть какие-либо советы или способы, которые я мог бы выполнить, пожалуйста, дайте мне знать.

* Я ищу варианты, которые будут закодированы в этом, так как она будет распространяться на 40 или 50 различных ПК

+0

[System.Threading.Timer] (http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx) возможно – Jonesopolis

+4

Возможно, лучше всего, чтобы программа выполняла однократное действие и затем планируйте его, чтобы он работал ежечасно в планировщике задач Windows, таким образом, он не сидит, ничего не делая (потребляя системные ресурсы) в оставшуюся часть часа. – Servy

+0

@Servy вы могли бы перейти более подробно об этой опции? – DarthSheldon

ответ

1

Использование планировщика заданий Windows, чтобы вызвать вашу программу. Он будет следить за тем, чтобы вы не пропустили вызовы, что ваш код вызывается в нужное время и что вы можете легко развернуть следующую версию инструмента с помощью xcopy.

Я думаю, что он может даже повторить неудачные задания, отправить отчеты об ошибках и т. Д.

Вы можете выполнить сценарий с использованием .bat-файла или создать его с помощью C#. Он доступен для массового развертывания.

0

Воспользуйтесь услугой Windows и таймером, начните сервис при запуске своей программы. Пусть сервис выполняет все «тяжелые подъемы» и использует таймер внутри службы. Это позволит уничтожить GUI и освободить его удерживаемые активы, когда они не используются, поскольку они менее навязчивы и ресурс тяжелый, чем приложение, скрытое в фоновом режиме.

Смежные вопросы