IClearCase,C#中的IClearTool用法,如何管理分配的内存

IClearCase,C#中的IClearTool用法,如何管理分配的内存,c#,memory-management,clearcase,C#,Memory Management,Clearcase,我正在分配新的ClearCase应用程序类对象,下面的代码可以吗? 或者我是否需要释放内存,如果需要,如何释放?我正在使用ccauto.dll的ClearCase互操作,我相信ccauto.dll是非托管代码,我很困惑,我应该释放内存还是不释放内存 请告知 private void timer1_Tick(object sender, EventArgs e) { try { IClearCase ccNew = new A

我正在分配新的ClearCase应用程序类对象,下面的代码可以吗? 或者我是否需要释放内存,如果需要,如何释放?我正在使用ccauto.dll的ClearCase互操作,我相信ccauto.dll是非托管代码,我很困惑,我应该释放内存还是不释放内存

请告知

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

  • 根据:
以编程方式“获取”ClearCase.Application对象后,是否需要继续以CAL方式获取该对象?
一旦获得
ClearCase.Application
对象,它就可以用来获取其他对象 无需再次创建它们。
CAL尽可能确保CAL对象与底层ClearCase数据保持同步,在调用属性和方法时根据需要进行刷新。
但是,如果有人删除了底层ClearCase数据,而CAL对象仍然持有引用,则CAL对象可能会变得无效

意思:您可以一次性地设置一个
CCVOB
实例(除非您认为Vob将消失…这应该是一个非常罕见的事件!)

  • 在C#中,将代码放置在使用块中可确保控件一离开块,对象就被释放(尽管不一定被收集)
我不确定
CCVOB
是否实现了
Disposable
,但如果实现了,将其显式设置为null将阻止正确处理。
所以我不建议
ccNew=null