使用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);