gpt4 book ai didi

C# + COM Interop,确定性发布

转载 作者:可可西里 更新时间:2023-11-01 08:19:00 26 4
gpt4 key购买 nike

COM 对象通常具有确定性销毁:它们在最后一个引用被释放时被释放。

这在 C# - COM Interop 中是如何处理的?这些类未实现 IDisposable,因此我看不到触发显式 IUnknown::Release 的方法。

一项临时测试表明,未引用的 COM 对象会被延迟收集(即垃圾收集器正在触发释放)。需要主动释放的OCM对象怎么办? (例如,持有大量或共享的关键资源)?

原始问题:我们有一个大量使用 COM 库的 C# 应用程序,它正在疯狂地泄漏。问题似乎在 C++ 和 C# 代码“之间”(我们可以访问两者),但我们无法确定。

最佳答案

您可以使用 System.Runtime.InteropServices.Marshal 类操作 COM 互操作引用。具体你可能想看看Marshal.ReleaseComObject .

关于C# + COM Interop,确定性发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com