|I have a very similar windows service that does exactly what you are describing.
Dim watcher As New FileSystemWatcher()
watcher.Path = gsWatcherPath
watcher.NotifyFilter = (NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName)
watcher.Filter = "*.txt"
AddHandler watcher.Created, AddressOf OnChanged
watcher.EnableRaisingEvents = True
Private Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs)
Once you instantiate the FileSystemWatcher, there is nothing else to do, no loops, nothing extra.
The Sub, OnChanged, gets fired for each file that is changed in the "watched" directory.
Hope this helps.