FileSystemWatcher 类
class Utils::FileSystemWatcherFileSystemWatcher 类是一个内部使用集中式 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 中的旧代码失败,请参阅下面的最后一个章节
详细信息。
©2024Qt公司有限公司的内容包含在本文档中的贡献是各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版下的条款进行许可的。GNU自由文档许可证第1.3版。Qt及其相关标志是芬兰以及/或其他国家的Qt公司的商标。所有其他商标均为各自所有者的财产。