2014-11-05 42 views
0

在wxGLCanvas和wxThreads之間共享數據的應用程序中。wxGLCanvas暫停繪製事件?

場景:線程修改canvas所使用的數據,導致paint事件崩潰。

當前解決方案:使用互斥鎖在畫布和線程之間共享數據。

Issue:我們在對話框中顯示線程的進度信息。互斥鎖鎖定主線程並且進度信息對話框掛起。

約束:我們的數據是巨大的,它的拷貝成本很高。畫布不應該被清除。

我的問題的任何解決方案?

回答

0

修改塊中的數據,以便主線程有機會週期性運行(確保塊之間的數據是一致的)。

否則將事件發送到主線程並添加更改數據的信息。工作線程中沒有信息被改變,而是主線程根據工作線程執行的計算進行實際改變。