一、托管代碼/非托管代碼
C#代碼通過C#編譯器編譯成程序集,程序集由微軟中間語言組成,CLR會為程序集開辟一個(gè)應(yīng)用程序域,程序集就是運(yùn)行在這個(gè)應(yīng)用程序域里面的,應(yīng)用程序域是相互獨(dú)立的,互不影響。
托管代碼:被CLR管理的代碼。
非托管代碼:不被CLR管理的代碼。
分配在棧空間的變量,一旦執(zhí)行完成其所在的作用域(即大括號范圍)就會被CLR回收。
分配在堆里面的對象,當(dāng)沒有任何變量引用它的時(shí)候,這個(gè)對象就被標(biāo)記為“垃圾對象”(沒有變量引用它),等待垃圾回收器回收。
Eg:
GC.GetGeneration(P)得到指定的對象對應(yīng)的代,總共有三代。
GC.Collect();//讓垃圾回收器對所有的代進(jìn)行回收。
GC.Collect(1)//回收第0代和第1代回收。
新聞熱點(diǎn)
疑難解答
圖片精選