【问题标题】:What is the impact of a FileSystemWatcher on a hard drive?FileSystemWatcher 对硬盘有什么影响?
【发布时间】:2013-10-08 23:14:34
【问题描述】:

我过去使用过 FileSystemWatcher。但是,我希望有人可以解释它在幕后的实际运作方式。

我计划在我正在制作的应用程序中使用它,它将监控大约 5 个驱动器和可能 300,000 个文件。

FileSystemWatcher 是否真的对驱动器进行“检查” - 例如,它会导致驱动器磨损吗?它是否也会影响硬盘“睡眠”的能力

这是我不明白它是如何工作的 - 如果它就像在计时器上扫描驱动器等......或者它是否在它做任何事情之前等待来自操作系统的某种类型的通知。

我只是不想实现会在驱动器上导致额外读取并阻止驱动器休眠的东西。

【问题讨论】:

    标签: c# winforms filesystemwatcher


    【解决方案1】:

    不是那样的。文件系统驱动程序仅针对您选择的过滤器监控机器上运行的其他程序请求的正常文件操作。如果有匹配项,那么它将向记录操作和文件名的内部缓冲区添加一个条目。它完成了驱动程序请求并获得在您的程序中运行的事件。您将获得从该缓冲区传递给您的操作的详细信息。

    因此,操作本身实际上并没有发生任何事情,根本没有额外的磁盘活动。这只是运行的软件。开销很小,没有什么明显减慢。

    【讨论】:

    • +1 我一直想知道 IO 更改通知是如何实现的
    【解决方案2】:

    简短的回答是否定的。 FileSystemWatcher 调用 ReadDirectoryChangesW API 并传递一个异步标志。基本上,当目录发生更改时,Windows 会将数据存储在分配的缓冲区中。此函数返回该缓冲区中的数据,FileSystemWatcher 将其转换为适合您的通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2014-10-05
      • 2021-06-20
      • 2014-10-12
      • 1970-01-01
      • 2012-03-22
      相关资源
      最近更新 更多