1.在一个事件中申请的内存空间(譬如数组,变量之类),在事件结束的时候是自动完全释放么?还是需要什么操作才能释放?
2.把多次重复的操作写成方法,方法申请的内存空间是在方法执行的时候才申请,执行完了就释放还是程序一运行就申请,直到程序完成再释放?
3.在程序中执行一个事件(一次或N次)之后,出现程序跑死,可能是什么原因?是因为内存空间未释放的原因么?
谢谢。

解决方案 »

  1.   

    1&2:.net中的内存资源释放是由GC做的.
    至于gc啥时候会释放...这个说不准.3:这个原因就太多了.不好说.
      

  2.   

    1.在一个事件中申请的内存空间(譬如数组,变量之类),在事件结束的时候是自动完全释放么?还是需要什么操作才能释放? 
    =================================
    值类型的是由系统自己释放的(所以在C中数值类型的没有GC机制也没有问题),引用类型的是GC释放的。2.把多次重复的操作写成方法,方法申请的内存空间是在方法执行的时候才申请,执行完了就释放还是程序一运行就申请,直到程序完成再释放?
     ================================================================================
    把多次重复的操作写成方法,运行的时候会把它编译成本地机器代码并且缓存,下次再运行同样的方法时就不需要再次编译了(JIT编译过程)。3.在程序中执行一个事件(一次或N次)之后,出现程序跑死,可能是什么原因?是因为内存空间未释放的原因么? 
    谢谢。
    =============================================
    可能是没有释放或者造成死锁等等,原因很多。
      

  3.   

    clr问题,重点看看垃圾回收的资料
      

  4.   

    1.在一个事件中申请的内存空间(譬如数组,变量之类),在事件结束的时候是自动完全释放么?还是需要什么操作才能释放? 
    ================================= 
    值类型的是由系统自己释放的(所以在C中数值类型的没有GC机制也没有问题),引用类型的是GC释放的。 
    4楼,能给举几个例子么?我对这个类型什么的,印象特别模糊,刚做不久。 private static bool isStrEqual(string str1, string str2)
     private void CreateLog(string logString,string AddString,string TypeString)
     private string ToNowTimeString(String Now_Time)
    象这样的方法是每用一次就实例话一次?2楼?