在C#中发布Open FileHandles

时间:2009-07-09 13:58:25

标签: c# filehandle

我有一个第三方组件复制图像并为某个任务打开它,但它似乎没有释放文件句柄。

我已经阅读了该组件的文档,但它像2004年一样发布,并且有一种方法可以释放句柄,但当然它需要一个(int bmpPtr)。 所以它显然是一个指针。 所以问题是:有没有办法检索某个文件上的打开句柄......如果有人知道,有没有办法知道开放过程的身份是什么?

问题在于C#而不是C ++。我会优先选择没有DLLImport的解决方案,但我不认为这是可行的。 干杯

3 个答案:

答案 0 :(得分:1)

从组件下面关闭文件句柄可能不是最好的主意,我不知道它可以通过C#完成。但是,您应该在正在使用的组件上查找Dispose方法。通常,Dispose用于清理非托管资源,例如文件句柄。

答案 1 :(得分:1)

我不确定这是否适用,但仅适用于记录:如果您使用Image.FromFile加载位图,则文件将一直处于打开状态。

答案 2 :(得分:0)

如果它有一个需要bmpPtr的方法,那么有一个返回bmpPtr的方法。找出你在哪里调用它,保存bmpPtr,然后再使用它来发布。