2009-04-14 5 views
2

Ich habe einen Manager, der Verbindungen zum Server hält. Ich halte die Verbindung aufrecht und möchte, dass meine Threads bei Bedarf Verbindungen anfordern. Meine Frage istWie soll ich Objs im Einsatz verfolgen, C#

Wie habe ich Track-Objekte automatisch? Ich möchte, dass es ähnlich wie Zielzeiger funktioniert. Ich beantrage eine Verbindung, dann, wenn mein Obj den Gültigkeitsbereich verlässt, sagt es dem Manager, dass es nicht mehr benutzt wird. Ich werde es nicht als Zeiger weitergeben. Ich werde etwas wie

{ 
Obj = Man.GetObj(); 
//some loop 
    Obj.DoSomething() 
} //auto tell man that obj is no longer in use 

Antwort

6

Sie Ihre eigenen Wrapper-Objekt und IDisposable implementiert schaffen könnte. Informieren Sie in der Dispose() Methode den Manager, dass Sie nicht mehr verwendet werden. Sie können dann Ihre Aussage wie ...

using(Obj obj = Man.GetObj()) 
{ 
    Obj.DoSomething(); 
} 

Der using Block ruft automatisch die Dispose() Methode am Ende des Umfangs.

1

Implementieren Sie die IDisposable-Schnittstelle und verwenden Sie die Schlüsselwort

 

class MyClass : IDisposable 
{ 
    void Dispose() 
    {} 
} 

using(MyClass obj = Man.GetObj()) 
{ 
    obj.DoSomething(); 
}// obj.Dispose() will be called when the object goes out of scope. 


Verwandte Themen