Di recente ho dovuto utilizzare 
System.IO.FileSystemWatcher per osservare una cartella ed accorgermi della 
creazione di nuovi files al suo interno.In quell'occasione ho fatto 
esperienza di comportamenti anomali legati agli eventi di notifica dei 
cambiamenti nei files o cartelle.Il caso fastidioso si verifica quando un 
file di grosse dimensioni arriva nella cartella: l'evento Created viene sparato 
quando inizia la scrittura fisica su disco, e non alla fine. Se all'interno del 
metodo legato all'evento si cerca di aprire il file si ottiene una bella 
eccezione di tipo System.IOException.
using System;using System.IO;namespace FSWTest{    class Program    {        static void Main(string[] args)        {            FileSystemWatcher fsw =                new FileSystemWatcher(@"C:\Temp\FSWTest");            fsw.Created += new FileSystemEventHandler(fsw_Created);            fsw.EnableRaisingEvents = true;            Console.Read();        }        static void fsw_Created(object sender, FileSystemEventArgs e)        {            Console.WriteLine("{0} {1}", e.ChangeType, e.Name);        }    }}
I miei colleghi ed io ipotizzavamo che questo 
comportamento fosse dovuto ad un baco del...