1. BufferSize

Windows 操作系统使用 FileSystemWatcher
创造的二个内部存储器缓冲区通告顺序文件的退换新闻,假诺在超短的光阴内有相当多的文书修改,这几个缓冲区会溢出,
变成生机勃勃部分追踪遗失,並且 FileSystemWatcher 不会时有发生十一分。加大
InternalBufferSize 属性值能够幸免这种场地。

InternalBufferSize 私下认可值是 8K,能够设置的最小值是 4K,增添或减小
InternalBufferSize 最棒用 4K 的大背头倍。每三个事件通报须要选拔 16
字节,并不带有文件名。InternalBufferSize 的内部存储器来自 non-paged
内部存储器,注意那生龙活虎部分内部存款和储蓄器财富相比华贵。

利用 NotifyFilter、IncludeSubdirectories 属性减小 trace 范围,设置
filter
属性并不会耳濡目染踏入缓冲区的平地风波通报,别的尽快的实现事件管理,也是防止缓冲区溢出变成事件不见的三个艺术。

  1. 暗藏文件也会监督

  2. 某些系统中,FileSystemWatcher
    的事件里对长文件名使用 8.3 短文件名艺术意味着。

  3. 纵然三个 FileSystemWatcher
    在督察同二个目的,在 Windows XP 在还未打 SP1 在此之前,Windows 二零零四SP2 或事前的操作系统中,只会有二个 FileSystemWatcher
    选用到文告;更新版本的操作系统中持有 FileSystemWatcher 都会接收文告。

  4. 一遍文件操作爆发三个事件通报

好几文件操作或然会吸引八个文本更正事件,举个例子新扩展文件、拷贝粘贴三个新的文本等。上边包车型大巴身体力行代码应用
log4net 记录日志,用三个流速计记录事件编号,当 Copy 二个 xml
文件并粘贴到 c:t 目录下时,从日记文件中得以看见会生出三个事件:贰个Created 和四个Changed。微软的讲授是文件系统的操作相比复杂,别的还只怕有此外程序的熏陶(比方杀毒软件等)。

始于测验,Rename、Delete、New 只会接触四个事变,Save、Paste
时会有八个事件。

在有个别品种中一时必要监察和控制有个别配置文件的改动,实时加载配置音讯到程序中,这种情状下得以参照他事他说加以考察log4net
的做法。通过二个停车计时器,在文件事件管理中让电火花计时器延迟风流洒脱段时间之后,再施行加载新的构造文件操作。这样能够免止对文本做一遍操作触发了多个改造事件,而频繁加载配置文件。

  1. 有人想同时监控各类别型的文本,比如
    *.xml + *.config,发现 Filter 属性不帮助这种装置(只可以够设置风流倜傥种)。

这种气象下能够将 Filter 属性设成 *.*,在事变里用 if
(e.FullPath.EndsWith(“.xml”State of Qatar || e.FullPath.EndsWith(“.config”卡塔尔国State of Qatar本人推断过滤一下。记得 Filter
属性的装置并不会减小步入缓冲区的平地风波通报,因而地点的办法并不会拉动多少质量损失。

7、多顾客情形下,A 客户运营监督程序,B 客户在操作文件,A 客户能监督到吗?

能。

相关文章