对象可以知道客户端何时创建它,因为构造函数会运行。
但是由于C#没有确定性的析构函数,因此在GC最终清理对象之前不会调用Dispose或Finalize。
服务器对象是否可以及时发现其客户端已发布它?我不需要此时释放的对象,只需要一个名为。
的方法谢谢, ++ PLS
答案 0 :(得分:2)
不,CCW(COM Callable Wrapper)介于两者之间。它只是在引用计数达到零时删除对托管对象的引用,以便最终可以收集对象。您无法连接到CCW,它是不透明的,不会产生任何事件。
答案 1 :(得分:0)
Dispose的目的是使对象销毁确定性,而不是等待GC调用终结器。无论如何,你可以调用Marshal.ReleaseComObject来减少COM对象的引用计数。