wxGLCanvas暂停油漆事件?

时间:2014-11-05 11:38:39

标签: opengl thread-safety wxwidgets

在wxGLCanvas和wxThreads之间共享数据的应用程序中。

场景:线程修改画布使用的数据,这会导致绘制事件中的崩溃。

当前解决方案:使用互斥锁在画布和线程之间共享数据。

问题:我们在对话框中显示线程的进度信息。互斥锁会锁定主线程并且进度信息对话框会挂起。

约束:我们的数据庞大且复制成本高昂。不应该清除画布。

我的问题的任何解决方案?

1 个答案:

答案 0 :(得分:0)

以块为单位修改数据,以便主线程有机会定期运行(确保数据在块之间保持一致)。

否则将事件发送到主线程,并提供更改数据的信息。工作线程上没有更改信息,而是主线程根据工作线程执行的计算进行实际更改。