簡單描述C#垃圾回收
這里涉及到C#垃圾回收的問題:
C#垃圾回收是.NET運(yùn)行庫的一部分。垃圾回收器管理所有的托管對象,所有需要托管數(shù)據(jù)的.NET語言(包括 C#)都受運(yùn)行庫的垃圾回收器的制約。C#垃圾回收器可以確定運(yùn)行垃圾回收的***時(shí)間,自動進(jìn)行C#垃圾回收。然而垃圾回收的一個(gè)產(chǎn)物是:C# 對象沒有確定性毀壞。所以會出現(xiàn)對象child已被銷毀,但又不為null,訪問時(shí)產(chǎn)生ObjectDisposedException異常。
方法一:
修改子窗體的構(gòu)造函數(shù)
- publicChildForm(){
- //.........
- this.Disposed+=newSystem.EventHandler(Form_Disposed)
- }
- //然后事件Form_Disposed的處理函數(shù)
- privatevoidForm_Disposed(objectsender,EventArgse)
- {
- Child=null;
- }
方法二:
重寫ChildForm的OnClosed方法
- ProtectedvoidOnClosed(EventArgse){
- base.OnClosed(e);
- child=null;
- }
當(dāng)然可能有其他的方法,各位看客有興趣的話補(bǔ)充一下。另外有敘述不當(dāng)?shù)牡胤?,請多多指?在下感激不盡。
【編輯推薦】