PowerShell - 发布 ComObject

PowerShell - Release ComObject

我正在创建一个新的 com 对象来打开弹出消息

$a = new-object -comobject wscript.shell
$b = $a.popup(“WARNING“,0,”Box title”,0 + 0x30)

我注意到该对象一直保持打开状态。我需要释放它吗? 下面的命令可以完成这项工作吗?

$null = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($a)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

是的,这是很好的做法。 通过释放 com 对象,它被标记为要被垃圾收集器销毁的清理。

实际上,对象的引用计数器减少了,如果它达到零,当垃圾收集器运行时,对象将从内存中删除。 您无法控制 何时 发生这种情况,但通过这种方式可以确保对象被删除。 参见 here