Joh*_*ang 12 c++ user-interface qt multithreading qthread
是否可以设置主GUI线程的优先级,以便与其他线程(QThread)相比具有更高的优先级?
我的目标是在其他线程进行一些密集计算时不冻结GUI,这可能会占用CPU到100%的负载.如果有人可以分享一种方法来确保GUI在此期间不会冻结,而其他计算线程仍然可以尝试最大化CPU使用率,那将是很棒的.
我考虑过管理其他线程,所以我不会同时启动太多的计算线程.
Rei*_*ica 13
当前线程为gui线程时,更改当前线程的优先级:
int main(int argc, char ** argv) {
QApplication app(argc, argv);
QThread::currentThread()->setPriority(QThread::HighPriority);
...
}
Run Code Online (Sandbox Code Playgroud)
您也可以从任何其他线程提交更改 - 只要主(GUI)线程具有正在运行的事件循环:
QMetaObject::invokeMethod(qApp, []{
QThread::currentThread()->setPriority(QThread::HighPriority);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7002 次 |
| 最近记录: |