Какой самый эффективный способ периодически читать файлы из общей сетевой папки? - PullRequest
2 голосов
/ 06 февраля 2012

Цель состоит в том, чтобы периодически читать файлы из папки, в которую их выводит другая программа, а затем передавать файлы в другую часть моего кода.

Как я могу добиться этого с лучшим компромиссом между производительностью и читаемым и простым кодом?

(мне нужно выполнить это как в C #, так и в Java. Отсюда двойное тегирование (и нет, это не домашняя работа :))

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Ввод / вывод является узким местом для большинства программ, но если вы стремитесь к производительности, есть несколько вещей, которые вы можете сделать, чтобы помочь. Один, читается только тогда, когда вам нужно. Это может быть достигнуто с помощью FileSystemWatcher, чтобы сообщить вам, когда файл изменяется. Во-вторых, если возможно, создайте новый поток для ввода-вывода, если вы можете продолжить работу без завершения операции.

1 голос
/ 06 февраля 2012

В Java вы можете использовать сервис часов.Я считаю, что он использует те же системные вызовы, что и C #.

http://docs.oracle.com/javase/tutorial/essential/io/notification.html

...