问题描述
我需要固定一个非常小的位图图像的 Scan0。通过这样做,我想防止 GC 在内存中移动它。我使用了一些使用 IntPtr Scan0 的本机方法,当 GC 应该移动位图时,我得到一个 System.AccessViolationException。
我找到了以下方法来实现这一点:
-
使用 GCHandle: 当我使用 GCHandle 时,我可以分配要固定的内存。我必须自己释放内存。
-
使用固定语句: 当我使用 fixed 语句时,我只能使用以下块内的固定对象,在这种情况下这对我来说是不切实际的。
-
使用 stackalloc 表达式: 我还没有找到将 stackalloc 与 IntPtr 一起使用的方法。
到目前为止我的假设是否正确?
是否有其他方法可以将 IntPtr 固定到内存中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)