在离开方法之前,我应该将com对象设置为null吗
本文关键字:对象 com 设置 null 我应该 方法 离开 | 更新日期: 2023-09-27 18:26:27
我在c#中引用了一个vb6对象,即Process,它有一组操作。
我有的方法
public double GetWidth(Process process, String operationName)
{
Operation operation=process.GetOperation(operationName);
return operation.GetValue("Width");
}
在退出函数之前,我需要将操作设置为null吗?我不想处理进程或它所包含的对象,但我不确定当我最终需要处理进程时,操作实例是否会导致。
顺便说一句,如果需要,我该如何处理com对象?
在退出函数之前,我需要将操作设置为null吗?
不,你没有。当方法存在时,即使不将operation
变量设置为null,它也将超出作用域。
从托管语言中使用的COM对象在垃圾收集器最终确定时会自动处理。这意味着,当没有人再持有对COM对象的引用时,该对象将在一段时间后被释放(取决于垃圾收集器决定何时启动并最终确定该对象)。
但是,如果你想立即释放COM对象,你可以调用Marshal.ReleaseComObject。你可能想了解一下这个方法,以了解什么时候应该使用它。
您想要使用Marshal.ReleaseComObject
的唯一原因是该对象拥有非常稀缺的资源,您无法等待垃圾收集器为您释放它。