在C#中处理通过指针引用的对象

时间:2012-03-12 14:25:59

标签: c# pointers garbage-collection

我正在使用C#包装器来提供来自相机的图像数据。

我有一个包含接收到的每个帧的数据的类,我想在处理帧数据后实现一个dispose方法来运行。问题是我想要处理的主要对象(图像缓冲区)只能通过指针访问。

我不知道在C#中是否有必要。我知道在C ++中我必须用它做一些事情以防止内存泄漏,但是我不太了解指针如何在垃圾收集方面在C#中工作。事实上,该程序运行正常,但内存使用量确实超出了我想要的范围。我发现,与依赖于我认为自动运行的终结器相比,正确处理某些对象可以提供更加一致的内存使用,例如在设置新图像框之前处理图像框上的现有图像时。如果可能的话,我想尝试类似的东西。

可能很重要:指针指向的数据由不安全的代码处理,这会创建两个指向对象的新指针(一个作为UInt16 *,另一个作为字节*)。这两个指针只存在于不安全例程的范围内,但我不确定这是否会以某种方式干扰GC。

任何建议,建议表示赞赏。感谢

编辑:我通过外部API的回调接收帧数据。

0 个答案:

没有答案