FileSystemWatcher 类

class Utils::FileSystemWatcher

FileSystemWatcher 类是一个内部使用集中式 QFileSystemWatcher 并在 Mac OS 上执行限制的文件监视器。更多...

头文件 #include <FileSystemWatcher>
继承 QObject

公共函数

FileSystemWatcher(QObject *parent = nullptr)
FileSystemWatcher(int id, QObject *parent = nullptr)

详细介绍

设计考虑

构造/析构 QFileSystemWatcher 代价高昂。这可以通过使用集中式监视器来解决这个问题。

注意:仍然可以通过向构造函数传递一个(任意的)整数 id != 0 来创建多个实例的 QFileSystemWatcher。这允许将超过操作系统限制的监视器与其它监视器分开(见下文)。

Mac OS 特异性

在 Mac OS X 上,每个进程在每个时刻可以打开的文件句柄数量有一个严格限制(例如,在 Mac OS X Snow Leopard Server 中为 2560,如 ulimit -a 所示)。使用具有大量监控目录的大型 qmlproject 会导致很容易超过这个限制。结果是内存泄漏,例如,当无法再创建线程。

此类实现了一个启发式算法,用于 .qmlproject 文件的文件系统监视器永远不会使用超过可用的文件句柄数的一半。它还增加了从 rlim_cur 到 rlim_max 的数量 - 在 main.cpp 中的旧代码失败,请参阅下面的最后一个章节

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man2/setrlimit.2.html

详细信息。

成员函数文档

[显式] FileSystemWatcher::FileSystemWatcher(QObject *parent = nullptr)

使用所有者 parent 创建 ID 为 0 的文件系统监视器。

[显式] FileSystemWatcher::FileSystemWatcher(int id, QObject *parent = nullptr)

使用 ID id 和所有者 parent 创建文件系统监视器。

©2024Qt公司有限公司的内容包含在本文档中的贡献是各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版下的条款进行许可的。GNU自由文档许可证第1.3版。Qt及其相关标志是芬兰以及/或其他国家的Qt公司的商标。所有其他商标均为各自所有者的财产。