这应该是一个简单的谷歌或MSDN的答案-但我在搜索方面做得不够。我有一个使用GDI进行大量绘图的小型win32应用程序。我观察到,当我在内存设备上下文中放置一个带有TextOut()的“标签”,然后在TextOut()调用之后立即使用BitBlt,文本就会间歇性地出现,时隐时现。BitBlt()在另一个线程中,但我有一个临界区来防止复制正在工作的图形。当我将TextOut()放在流中的较早位置时,即不靠近BitBlt()时,它总是出现。我所能想到的就是TextOut()在完成之前返回..有没有人可以给我指点文档或者提出另一种理论?
仅供参考-我已经检查过了:http://msdn.microsoft.com/en-us/library/dd145133(v=vs.85).aspx
谢谢!
发布于 2012-05-18 08:04:09
是的,确实如此。GdiFlush()是强制对视频适配器进行所有GDI更新的调用。
有很多其他的方法来射你的脚。GDI根本不是线程安全的,所以我想不要期待奇迹。
https://stackoverflow.com/questions/10643606
复制相似问题