我正在使用 QFileSystemModel 在 Mac 上解析包含 20,000 多个文件和子目录的目录结构。QFileSystemModel 大约需要 8-10 秒来填充,在此期间 UI 会停止。根据 Qt 文档,文件系统解析是在单独的线程中完成的。所以我想知道我是否做错了什么来停止 UI 或者这是一个已知问题。请看下面的堆栈跟踪,这是 QFileSystemModel 遍历目录结构和 UI 停止时主线程的快照。Qt 库不是调试库,我只能管理没有任何调试符号的堆栈跟踪,但希望这可能是找出这里可能出了什么问题的线索。
0 _ISGetCGImageRefForISImageRef
1 PlotISImageRefInContext
2 PlotIconRefInContext
3 qt_mac_convert_iconref
4 qt_mac_constructQIconFromIconRef
5 QFileIconProviderPrivate::getMacIcon
6 QFileIconProvider::icon
7 QFileInfoGatherer::getInfo
8 QFileSystemModelPrivate::_q_fileSystemChanged
9 QFileSystemModel::qt_metacall
10 QObject::event
11 QFileSystemModel::event
12 QApplicationPrivate::notify_helper
13 QApplication::notify
14 QCoreApplication::notifyInternal
15 QCoreApplicationPrivate::sendPostedEvents
16 __CFRunLoopDoSources
17 __CFRunLoopRun
18 CFRunLoopRunSpecific
19 RunCurrentEventLoopInMode
20 ReceiveNextEventCommon
21 BlockUntilNextEventMatchingListInMode
22 _DPSNextEvent
23 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
24 -[NSApplication run]
25 QEventDispatcherMac::processEvents
26 QEventLoop::processEvents
27 QEventLoop::exec
28 QCoreApplication::exec
29 main