我有一个与服务器建立连接的管理器。我保持连接活着,我希望我的线程在需要时请求连接。我的问题是
如何自动跟踪对象?我希望它的工作方式类似于范围指针。我请求连接,然后当我的obj超出范围时,它告诉管理器它不再使用了。我不会将它作为指针传递。我会做像
这样的事情{
Obj = Man.GetObj();
//some loop
Obj.DoSomething()
} //auto tell man that obj is no longer in use
答案 0 :(得分:6)
您可以创建自己的包装器对象并实现IDisposable
。在Dispose()
方法中,告知经理您已不再使用。然后,您可以将您的陈述称为......
using(Obj obj = Man.GetObj())
{
Obj.DoSomething();
}
using
块会在范围结束时自动调用Dispose()
方法。
答案 1 :(得分:1)
查看using语句。
答案 2 :(得分:1)
实施IDisposable接口,并使用使用关键字
class MyClass : IDisposable { void Dispose() {} } using(MyClass obj = Man.GetObj()) { obj.DoSomething(); }// obj.Dispose() will be called when the object goes out of scope.