c#锁定的图像应该总是被解锁吗?

本文关键字:解锁 锁定 图像 | 更新日期: 2023-09-27 18:16:09

我有一个函数,它有一个图像作为输入。

由于我的计算依赖于几个像素,我不能直接在这个锁定的输入图像上工作,所以我使用另一个结果图像,我也锁定了更快的位图访问。

在函数结束时,我解锁了这两个图像。

  //...
  //..
  LockedInput.UnlockBits();
  LockedResult.UnlockBits(); // its the image "Result" locked.
return Result;
}

我想知道,因为输入图像不是由这个函数返回;我还应该打开它吗?我不确定它是否已经被c#垃圾回收释放了。如果我标记了LockedInput.UnlockBits(),程序不会挂起,但是我不确定这样做是否可以。

c#锁定的图像应该总是被解锁吗?

"Locking bits"意味着对象不能为批量访问安排位/像素,但必须为单个像素访问保持优化。既然你不再关心像素,你也不关心它们的表示。当。net可以简单地丢弃所有像素时,它不会安排这些像素。所以解锁是不必要的