用.Net进行开发,遇到一个问题,有对象通过如下方式设为租约永不过期,public class class1 : MarshalByRefObject
{
public override Object InitializeLifetimeService()
{
return null;
}
}现在问题来了,因为对象具有无限长的生存期,不会被释放,造成内存占用很大,请教各位达人,
有没有方法释放这种无限生存期的对象?
{
public override Object InitializeLifetimeService()
{
return null;
}
}现在问题来了,因为对象具有无限长的生存期,不会被释放,造成内存占用很大,请教各位达人,
有没有方法释放这种无限生存期的对象?
解决方案 »
- 请看这样的鼠标点击事件,为什么会报错
- 求~SQL数据库里面的一张表转换成XML文件的源代码
- 用什么技术可以实现在线画板。并能将其转化成BMP格式的文件POST给服务器
- 如何设计这个类那
- 关于在服务器上安装部署的时候dotnetfx.exe一起安装的问题,肯定做过的人相告,具体描述如下:(分不够再加)
- 求Reporting service资料(安装和使用的)。。谢谢。
- C#程序卡死
- 如何将各类网络打印机驱动嵌入到程序里面去
- bitmap图片如何保存到文件中
- C#在导出Excel时出问题
- C#将本地多个文件打包成rar文件时的问题
- WcF高手请进.问题是,我客户端调用是当 xel_Order (xml格式) 数据在1000行可以稳定运行而且非常快(有10秒吧),当xel_Order 大于3000行的时候客户端就死机了(客户机cpu和内存都空闲着)这个是怎么回事啊,我把config文件
注意:此方法在 .NET Framework 2.0 版中是新增的。 通过禁止创建租约来给予 VirtualFileBase 实例无限的生存期。
返回值
总是为 空引用(在 Visual Basic 中为 Nothing)。
备注
此方法重写其基类的 InitializeLifetimeService 方法。它始终返回 空引用(在 Visual Basic 中为 Nothing),从而禁止创建会限制虚拟文件或目录的生存期的租约。
{
....实现IDisposable接口...手动释放...
谢谢各位,之所以使用无限期的租约是因为客户端使用该对象的时候的释放时机不易把握,
另外可能会有多个客户端使用该对象,且时间可能是不连续的,前一个客户使用完了过一段
时间另外的客户端才会使用该对象。如果实现IDisposable借口,之前的代码
public override Object InitializeLifetimeService()
{
return null;
}
不会对其有所影响吧?
public bool IsPermanent; 是否永久
public override Object InitializeLifetimeService()
{
if(IsPermanent)return null;
else .....
}
谢谢,但是现在问题是怎么样把永久的对象释放掉
也许正如dreamsnake 所说,设计思路有问题,但是对于永久租期对象的释放,是不是有办法呢
然后就不用你操心了。垃圾回收会自己释放
在创建对象的时候设为生命期是永久的,但在后面的使用中我发现对象需要被释放了,就把
IsPermanent设为false,对象的生命期就由永久变成了可回收的呢?
不知道你是不是这样的意思,请指教
好像讲到了