首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDI+ LockBits()/UnLockBits()异常

GDI+ LockBits()/UnLockBits()异常
EN

Stack Overflow用户
提问于 2011-11-03 22:23:28
回答 2查看 2.7K关注 0票数 4

我的程序是用C#写的,并且在低级操作位图。一切工作正常,但有时(非常罕见,但很稳定)会发生异常“泛型GDI+异常”,并且很难重现这种情况。

在函数LockBits()和UnLockBits()上发生异常。包含错误码"-2147467259“。在GDI+语言中,它应该是方法GdipBitmapLockBits并返回代码7或1。

什么样的原因会导致这样的情况呢?

任何答案都非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 18:48:55

我研究过这个问题,看起来它可能与线程有关。我不知道到底是什么导致了这个问题,也没有证据,但是在整个代码中设置锁之后,这个问题似乎已经解决了。

票数 1
EN

Stack Overflow用户

发布于 2012-11-03 08:38:54

GDI+对象不是线程安全的,在不同步的情况下从多个线程使用它们肯定会导致崩溃。为了完整性,我想补充说,在释放位图之前可以释放支持GDI+位图的内存,在这种情况下,当您尝试使用位图时,您将获得无效的访问。只有当您自己分配像素数据并使用接受指向数据的指针的构造函数时,才会发生这种情况:http://msdn.microsoft.com/en-us/library/zy1a2d14.aspx

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7996484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档