GDI+ LockBits()/UnLockBits() 异常

2024-01-07

我的程序是用 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(使用前将#替换为@)

GDI+ LockBits()/UnLockBits() 异常 的相关文章

随机推荐

  • 如何将数据发送到正在运行的 python 线程?

    我有一个类在我的应用程序中的单独线程中运行 我可以同时运行多个线程 并且这些线程是守护进程 经过一段时间后 some这些线程需要接收并处理消息 我该怎么做呢 我的代码示例如下所示 import threading import time c
  • 如何使用 Requirejs 在模块构建中使用 Web Workers?

    我有一个使用 Requirejs 和 Backbonejs 编写的运行良好的应用程序 但有时它确实很慢 例如 当需要进行一些算术工作时 我尝试使用 Web Worker 来完成这样的算术工作 我的模块 traffic js define j
  • 为什么使用 START_STICKY 重新启动 Android 服务如此缓慢?

    我有一个后台服务 我正在这个服务上进行所有操作 该服务有时会与活动配合使用 但如果应用程序关闭 服务将重新启动START STICKY 它工作正常 但有时需要很长时间才能重新启动 例如一分多钟 Override public void on
  • Angular.js 以编程方式将表单字段设置为脏

    我正在以编程方式更新表单上的一些字段的值 我想将字段状态设置为 dirty 做类似的事情 scope myForm username dirty true 似乎不起作用 有一个方法 setPristine我可以用它来重置字段的状态 但没有
  • React Router 4 正则表达式路径 - 匹配找不到参数

    我正在尝试为 React Router 4 进行正则表达式模式匹配 但不幸的是this props match params id未正确解析路径 并显示为未定义 我希望能够访问的路径示例 gps gps air gps a0b6dc45 1
  • 选择 jQuery 中每个可见的最后一个子项

    我想得到最后一个visible td每一个tr在一个表中 这不起作用 因为它尝试选择最后一个孩子if可见 var last visible cells table find tr td visible last child 到目前为止 我想
  • 从网站启动 Chrome 打包的 Web 应用程序

    我有一个 Chrome 打包的 Web 应用程序 这是必需的 因为它需要访问串行端口 并且当我单击该应用程序上的链接 按钮时 我希望能够从我的网站启动它 带有一些数据 网站 如果它能够检测用户是否没有运行 chrome 或者没有安装网络应用
  • 多线程控制台应用程序何时退出?

    class Program public static void Main String args var c new C var thread new Thread new ThreadStart c F thread Start Con
  • 将 cuBLAS 与 Thrust 的复数结合使用

    在我的代码中 我使用推力库中的复数数组 我想使用 cublasZgeam 来转置数组 使用 cuComplex h 中的复数并不是一个更好的选择 因为我对数组进行了大量算术运算 并且 cuComplex 没有定义的运算符 例如 这就是我定义
  • Android代码不扫描BLE设备CC2650

    我正在使用 CC2650STK SensorTag 我从 GitHub 下载了这个开源应用程序 https github com googlesamples android BluetoothLeGatt https github com
  • 如何正确调整 Facebook Canvas 应用程序 (iFrame) 的大小?

    我需要在更新页面内容后调整画布大小 我可以明确地做到这一点 FB Canvas setSize width 760 height 1480 但是 如果没有参数 它就无法工作 即 setSize 另外 我可以通过以下方式调整高度 FB Can
  • 保留 IBOutlet 视图元素真的是最佳实践吗?

    我不断遇到 UIViewControllers 包含大量 IBOutlet 将控制器连接到其视图的子视图 通常是 UILabels 的情况 遵循 最佳实践 即在所有 UI 元素上使用保留 property retain nonatomic
  • SQL 中的大文本和图像

    在 SQL 数据库中存储大量文本 例如 html 页面 是个好主意吗 或者将其作为 html 文件存储在文件系统中是一个更好的主意吗 图像也是如此 将图像数据存储在数据库中是一个好主意还是将它们放在磁盘上更好 例如 存储大量数据是否会导致性
  • 应用程序更新后推送通知令牌是否会更改?

    我问的是两种情况 1 我们从 App Store 进行定期更新后 2 在我们模拟更新后 通过从商店下载当前版本并从 Xcode 中安装和运行新版本 推送通知令牌会改变吗 如果改变 多久改变一次 例如 每次 还是时不时 我问这个 因为我正在做
  • 运行 pod install 时出现“您的项目未明确指定 CocoaPods 主规范存储库”警告

    我跑完之后pod install 我收到一条警告 您的项目没有明确指定 CocoaPods 主规范存储库 由于 CDN 现在被用作默认值 您可以通过以下方式安全地将其从存储库目录中删除 pod repo remove master 要抑制此
  • 为什么 Passport 不能与 cookieSession() 一起使用?

    我正在研究 facebook 授权 发现护照不能与 cookieSession 一起使用 只能与 session 一起使用 在第一种情况下 req user 始终未定义 有可能让它发挥作用吗 您仍然可以使用最新版本的 Express 重现此
  • NPOI - 写入文件会损坏 .xlsx 工作簿

    我有一段代码当前正在写入 xls工作簿 HSSFWorkbook 没有问题 但是 当我尝试使用相同的代码写入 xlsx工作簿 XSSFWorkbook 存档已损坏并且无法在 Excel 中打开 以下代码是我用来访问工作簿 编辑工作簿 然后保
  • 如何禁用下拉元素中的特定项目

    如何使用 jQuery 或 JavaScript 禁用下拉元素的某些项目 与禁用任何其他 HTML 元素相同的方式 使用 option selector prop disabled true 看到它在action http jsfiddle
  • Libgdx box2D 中的碰撞对于某些物体失败

    我正在使用 libgdx 和 box2d 开发我的第一个游戏 我正在使用调试渲染器来测试我的对象 我创建了一些类似汽车的物体 每辆车都有一个主体 它是一个6点的大多边形 长约1米 高0 7米 并有2个通过旋转关节连接的车轮 主车还通过旋转接
  • GDI+ LockBits()/UnLockBits() 异常

    我的程序是用 C 编写的 并在低级别上使用位图进行操作 一切工作正常 但有时 非常罕见 但稳定 会发生异常 通用 GDI 异常 并且很难重现这种情况 函数 LockBits 和 UnLockBits 发生异常 它包含错误代码 2147467