2013-03-05 14 views
5

Sto lavorando a un progetto con una grande quantità di file modificati e creati/cancellati. Ci sono alcuni problemi con i buffer interni multipli di FSW che si riempiono e devono essere espansi.FileSystemWatcher.Filter - buffer prima o dopo?

Ho trovato informazioni in conflitto online sul fatto che ".Filter" filtri BEFORE o AFTER le modifiche rilevate vengono aggiunte al buffer. Se in realtà dopo una singola FSW con l'ordinamento degli eventi in seguito potrebbe avere più senso.

Qualcuno sa per certo di che si tratta?

Grazie.

risposta

1

FileSystemWatcher avvolge il metodo W32 nativo ReadDirectoryChangesW che a sua volta è responsabile di inserire eventi di file system nel buffer fornito. La proprietà Filter viene applicata sul lato CLR dopo che l'evento è già stato memorizzato in un metodo privato MatchPattern che indica al monitor se segnalare o meno l'evento del file.

L'utilizzo della proprietà Filter non è di aiuto per la situazione attuale. Piuttosto, potrebbe essere più vantaggioso far crescere il valore InternalBufferSize per evitare di sovraccaricare il buffer. In alternativa, ci sono un certo numero di altre classi di monitoraggio degli eventi del file system là fuori sulla rete che si sono proposti di risolvere lo stesso problema.