2009-08-11 4 views
1

Auf timer tick Ich bin ein neues ClearCase ApplicationClass Objekt zuweisen, ist der folgende Code in Ordnung? Oder muss ich Speicher freigeben, wenn ja, wie? Ich benutze ClearCase Interop von ccauto.dll, ich glaube, ccauto.dll ist nicht verwalteten Code, ich bin verwirrt, soll ich den Speicher freigeben oder nicht?IClearCase, IClearTool Verwendung in C#, Wie verwalte ich den zugewiesenen Speicher

Bitte beraten.

private void timer1_Tick(object sender, EventArgs e) 
    { 
     try 
     { 
      IClearCase ccNew = new ApplicationClass(); 
      CCVOB vob = ccNew.get_VOB(ClearCaseVOB); 
      ccNew = null; 
     } 
     catch 
     { 
     } 
    } 

Antwort

0

2 Kommentare:

Sobald Sie "GET" ein ClearCase.Application Objekt programmatisch, haben Sie immer das Objekt halten müssen CAL?
Sobald das ClearCase.Application Objekt erhalten wird, kann es verwendet werden, um andere Objekte zu bekommen, ohne sie neu erstellen zu müssen.
CAL stellt sicher, dass CAL-Objekte mit den zugrunde liegenden ClearCase-Daten synchronisiert bleiben und beim Aufrufen von Eigenschaften und Methoden aktualisiert werden.
Die CAL-Objekte können jedoch ungültig werden, wenn jemand die zugrunde liegenden ClearCase-Daten löscht, während eine Referenz noch vom CAL-Objekt gehalten wird.

Bedeutung: (!, Wenn Sie die vob denken verschwinden ... was ein sehr seltenes Ereignis sein sollte) Sie einmal eine CCVOB Instanz einstellen könnte und für alle

  • In C# platzieren Code in Eine Verwendung Block stellt sicher, dass die Objekte entsorgt werden (obwohl nicht unbedingt gesammelt), sobald die Kontrolle den Block verlässt.

Ich bin nicht sicher, ob CCVOB Geräte Disposable, aber wenn es der Fall ist, Einstellung explizit es würde verhindern, dass auf null ordnungsgemäß entsorgt werden.
Also ich würde nicht ccNew = null;

empfehlen
Verwandte Themen