While working with the FileSystemWatcher I found that if too many files were created the built in buffer will overflowed and files will be skipped. After much research I found out about the Producer-Consumer Problem . Then I found that .Net 4 has the BlockingCollection which helps solve the issue. But how to use it with the FileSystemWatcher? On StackOverflow I found Making PLINQ and BlockingCollection work together . I'm not so interested in the PLINQ issue but this is a great example of using The BlockingCollection with FileSystemWatcher. [csharp] using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; namespace ConsoleApplication4 { public class Program { private const string Folder = "C:\\Temp\\InputData"; static void Main(string[] args) { var cts = new CancellationTokenSource(); foreach (var obj in Input(cts.Token))
Improving the development process one day at a time.