【发布时间】:2012-06-17 14:34:17
【问题描述】:
我写了一段与这篇文章中的示例类似的代码: .NET Remoting callback (将回调对象传递给远程方法)。
我发现,如果我没有覆盖 MarshalByRefObject.InitializeLifetimeService()
过了一会儿,服务器调用回调失败。
所以我重写了它以返回 null(无限生命周期)并且它可以工作。
但现在我有点担心垃圾收集器:
- 这样的对象会像往常一样被 GC 收集,还是因为它被远程而保持活动状态?
- 我找到了这个方法:
RemotingServices.Disconnect()
如果我在我的回调对象上调用它,它会保证生命周期策略将变得无关紧要并且会被垃圾回收吗?
如果我做对了,我想要专家意见。
谢谢, 吉尔。
PS。我在 .NET 2.0 的约束下工作,因此建议切换到 WCF,虽然正确,但无关紧要。 :)
【问题讨论】:
-
.NET 远程处理比 WCF 强大得多。我仍然不知道为什么它作为替代品出售。
标签: c# .net remoting .net-remoting