多线程:如何在wxthread中使显示图像的GUI线程和处理图像同步的工作线程无阻塞

Multithreading: how to make GUI thread for showing image non-blocking and worker thread for processing image synchronization in wxthread

本文关键字:线程 图像 处理 同步 工作 GUI wxthread 显示 多线程 显示图      更新时间:2023-10-16

我开始使用wxThread。

我已经用wxWidgets在GUI线程中显示了视频。现在我想用opencv来处理每一帧每一帧画一个圆。首先,我在GUI线程中完成了处理。但是当我运行程序时,我发现GUI中的图像不是连续显示的,有些图像不包括圆。

我意识到图像处理部分没有放到GUI线程中。我应该创建一个新的线程来完成图像处理部分。

但是我不知道如何使GUI线程和工作线程同步,这意味着它可以使GUI线程非阻塞,工作线程用opencv处理帧。虽然我知道wxthread教程,但我无法处理如何在两个wxthread之间共享数据的问题。

有没有人有什么想法或参考?Thx .

在wx-wiki中有一个相当广泛的关于线程同步的章节https://wiki.wxwidgets.org/Inter-Thread_and_Inter-Process_communication

对于后台任务,我喜欢使用"post事件到主线程"的方法这可能也适用于你。-发送一个事件每当你的工作线程完成处理单个图像和显示图像在事件处理方法