我有一个以图像为输入的功能。
由于我的计算取决于几个像素,我不能直接处理这个锁定的输入图像,所以我使用另一个结果图像,我也锁定更快的位图访问。
在我的功能结束时,我解锁了两张图片。
//...
//..
LockedInput.UnlockBits();
LockedResult.UnlockBits(); // its the image "Result" locked.
return Result;
}
我想知道因为输入图像没有被这个函数返回;我还应该解锁吗?我不确定它是否已经被c#garbage collection发布了。如果我将LockedInput.UnlockBits()标记出来,程序就不会挂起来但是我不确定是否可以这样做。
答案 0 :(得分:1)
"锁定位"意味着对象不能排列用于批量访问的位/像素,但必须保持它们针对单个像素访问进行优化。由于您不再关心像素,因此您也不关心它们的表现形式。并且当它可以简单地丢弃所有像素时,.Net不会安排这些像素。因此,解锁并不是必需的。