使用COM组件后,用不用手动释放资源,其实我也不太确定,因为从我自己测试的结果看,好像不释放对内存影响也不是太大。手动释放内存会好一点。也许是.net有gc垃圾回收机制能够起到一定的作用。
不管是否.net有gc垃圾回收机制能够起作用,最好是手动释放一下。
方法如下:
public static class ReleaseCom
{
//释放资源方法一
public static void ReleaseComObject(object obj)
{
while ((Marshal.ReleaseComObject(obj)) > 0) ;
}
{
//释放资源方法一
public static void ReleaseComObject(object obj)
{
while ((Marshal.ReleaseComObject(obj)) > 0) ;
}
//释放资源方法二
public static void ReleaseComObject2(object obj)
{
int result = 0;
do
{
result = Marshal.ReleaseComObject(obj);
}while (result > 0) ;
}
}
public static void ReleaseComObject2(object obj)
{
int result = 0;
do
{
result = Marshal.ReleaseComObject(obj);
}while (result > 0) ;
}
}
使用的时候调用
//释放资源
ReleaseCom.ReleaseComObject(obj);
ReleaseCom.ReleaseComObject(obj);