C#锁定图像是否应始终解锁

时间:2015-10-06 11:40:27

标签: c# image-processing

我有一个以图像为输入的功能。

由于我的计算取决于几个像素,我不能直接处理这个锁定的输入图像,所以我使用另一个结果图像,我也锁定更快的位图访问。

在我的功能结束时,我解锁了两张图片。

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

我想知道因为输入图像没有被这个函数返回;我还应该解锁吗?我不确定它是否已经被c#garbage collection发布了。如果我将LockedInput.UnlockBits()标记出来,程序就不会挂起来但是我不确定是否可以这样做。

1 个答案:

答案 0 :(得分:1)

"锁定位"意味着对象不能排列用于批量访问的位/像素,但必须保持它们针对单个像素访问进行优化。由于您不再关心像素,因此您也不关心它们的表现形式。并且当它可以简单地丢弃所有像素时,.Net不会安排这些像素。因此,解锁并不是必需的。