在wxGLCanvas和wxThreads之间共享数据的应用程序中。
场景:线程修改画布使用的数据,这会导致绘制事件中的崩溃。
当前解决方案:使用互斥锁在画布和线程之间共享数据。
问题:我们在对话框中显示线程的进度信息。互斥锁会锁定主线程并且进度信息对话框会挂起。
约束:我们的数据庞大且复制成本高昂。不应该清除画布。
我的问题的任何解决方案?
答案 0 :(得分:0)
以块为单位修改数据,以便主线程有机会定期运行(确保数据在块之间保持一致)。
否则将事件发送到主线程,并提供更改数据的信息。工作线程上没有更改信息,而是主线程根据工作线程执行的计算进行实际更改。