I am about to implement the archetypal FileSystemWatcher solution. I have a directory to monitor for file creations, and the task of sucking up created files and inserting
If you know that the second thread will always be required, and you also know that you'll never need more than one worker thread, then option three is good enough.