GDI +和多线程

问题描述 投票:0回答:1

根据我发现的所有信息,GDI +能够以多线程的方式使用,但有一个限制,即不能同时从多个线程使用GDI +对象。

我的C ++ MFC Windows应用程序中有两个线程偶尔崩溃的问题(一个在启动时照顾启动窗口,另一个是执行某些初始化工作的主线程)。崩溃无法重现,但有一个共同点:在调试器中停止程序时,这两个线程中的至少一个处于GDI +操作中。

这里有人有关于GDI +线程的知识吗?

根据我发现的所有信息,GDI +能够以多线程的方式使用,但有一个限制,即不能同时在多个线程中使用GDI +对象。我有...

c++ winapi mfc gdi+
1个回答
1
投票

最好使用“双缓冲区”机制为每个映射创建2个memory DC,一个接一个地使用。也就是说,主窗口读取存储器DC A以进行显示,同时后台线程在存储器DC B上进行绘制,并在绘制完成时通知主线程。通知主线程后,交换A和B(显示B,并且A是下一个后台线程操作的对象)。

© www.soinside.com 2019 - 2024. All rights reserved.