gpt4 book ai didi

multithreading - Delphi 位图中的异步线程绘制

转载 作者:行者123 更新时间:2023-12-03 15:42:11 26 4
gpt4 key购买 nike

如果多个异步线程在全局TBitmap中绘制,会引发错误吗?我应该使用关键部分创建代码吗? (根据我在互联网上的冲浪,我发现 TBitmap.Draw 不是线程安全的)

另一个问题:如果许多同步线程在全局 TBitmap 中绘制,并且 VCL 计时器异步读取 TBitmap 中的内容,这会引发错误吗?

谢谢!

最佳答案

是的,您确实需要保护 TBitmap 免遭多个线程的并发访问。关键部分适合序列化绘图代码,但是这本身还不够!主线程会缓存 GDI 资源并定期对其进行清理,这会影响您的 TBitmap。因此,每当绘图/渲染时,您还需要Lock/Unlock() TBitmap.Canvas,以确保 VCL 不会在您背后撕毁其资源。

关于multithreading - Delphi 位图中的异步线程绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com