Qt - 慢速 GUI - 线程



当使用pthread(或QThread与moveThread函数)读取数据(使用互斥锁)时,GUI会变慢。

为什么?

GUI 线程和 pthread worker(或 Qthread)是两个不同的线程,对吗?

确切地说,GUI不读取/写入任何数据,因此它们是两个不相关的过程。

为什么会出现这个问题?

(上面是pthred worker的例子,而GUI对话框是用qt Creator创建的,并且存在于主线程中)

void* task_camera_notifier(void*)
{
    while(AppState::is_left_camera_in_grabbing && AppState::is_right_camera_in_grabbing)
    {
        camera_data left_data;
        SharedData::SecureAccess_get_leftCameraFrame(left_data);
    }
    return NULL;
}
SharedData::SecureAccess_get_leftCameraFrame(left_data);对我来说

似乎是一个非常繁重的操作(可能需要从相机读取可能非常大的图像,然后将其复制到对象中)。然后,在刚刚读入数据后,left_data超出范围并删除图像。然后一次又一次。尝试在此 while 循环中包含一个小的睡眠,这样它就不会占用所有系统资源。

最终目标:你想实现什么?

相关内容

  • 没有找到相关文章

最新更新