OK I have an application that produces some contracts based on a file that is created by another app. 

I have implemented a filewatcher to watch for the file being created and it then kicks off a `backgroundworker` process to create the contracts based on the filename. 

The problem I am having is that during the background worker process I set `EnableRaisingEvents` to false so that the app does not start to process a different set of contracts whilst the first is running (It's also to stop calling the background worker whilst it is running as it cant run 2 things at once!).

All works fine, the other app creates a file, filewatcher picks it up and starts processing, the problem is that when processing is finished the filewatcher is re-enabled but I assume it wont pick up any files that were created when `EnableRaisingEvents` was false - and so if the application that creates the initial file to produce the contracts happens to create another file whilst my app is processing it will just be left. Does that make sense? And what is the best way round this? 

I had thought of having another process that when the initial contract creation is finished would then look in the directory for other files created between the time when the filewatcher was disabled and if there were none it would then re-enable the filewatcher but I am wondering if there is a simpler way to do this?