前言:FileSystemWatcher本身是一个多线程的组件,通过TreadPool实现监控多个文件,异步触发我们关注的事件。这里我们通过反编译 FileSystemWatcher来看看它的实现机制,能否监视伪造文件,I/O操作怎样等。这里采用的是.Net Framework 4.0的版本。注意:我在msdn上查到一个修复:
当在 Microsoft.NET Framework 4 基于应用程序使用FileSystemWatcher类,以监视指定的目录中的更改时,则会发生内存泄漏。 FileSystemWatcher类中存在错误,会发生此问题。当创建一个FileSystemWatcher对象时, FileSystemWatcher类使用GCHandle类创建固定的垃圾回收器 (GC) 句柄。句柄是 8k 字节为单位),并使用字节 [] 数据格式。但是, FileSystemWatcher对象永远不会释放垃圾回收器句柄。
这里需要安装