多线程:如何在wxthread

时间:2015-08-02 12:52:37

标签: c++ multithreading wxwidgets

我开始使用wxThread。

我在GUI线程中使用wxWidgets显示了视频。现在我想用opencv处理每个帧,就像在每个帧中绘制一个圆圈一样。一开始,我已经在GUI线程中完成了处理。但是当我运行程序时,我发现GU​​I中的图像不是连续显示的,而某些图像不包括圆圈。

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

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

任何人都可以对此有所了解或参考吗? THX。

1 个答案:

答案 0 :(得分:0)

wx-wiki中有关于线程同步的相当广泛的部分 https://wiki.wxwidgets.org/Inter-Thread_and_Inter-Process_communication

对于后台任务,我喜欢使用“post event to main thread”方法 这可能也适合你。 - 只要处理单个图像完成工作线程并在事件处理程序方法中显示图像,就发送事件