我的程序是用 C# 编写的,并在低级别上使用位图进行操作。一切工作正常,但有时(非常罕见,但稳定)会发生异常“通用 GDI+ 异常”,并且很难重现这种情况。
函数 LockBits() 和 UnLockBits() 发生异常。它包含错误代码“-2147467259”。在 GDI+ 语言中,它是方法 GdipBitmapLockBits 并返回代码 7 或 1。
什么样的原因可能会造成这样的情况呢?
任何答案都非常感激。
GDI+ 对象不是线程安全的,在不同步的情况下从多个线程使用它们肯定会导致崩溃。为了完整起见,我想补充一点,可以在释放位图之前释放支持 GDI+ 位图的内存,在这种情况下,当尝试使用位图时,您将获得无效访问。仅当您自己分配像素数据并使用带有指向数据的指针的构造函数时,才会发生这种情况,例如:http://msdn.microsoft.com/en-us/library/zy1a2d14.aspx http://msdn.microsoft.com/en-us/library/zy1a2d14.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)