2012-09-26 187 views
3

可能重複:
Remove handlers on disposing object處理對象時是否需要刪除事件?

我有一些代碼,動態地添加和從Form除去Controls到/。控件存儲在表單所擁有的集合中。當刪除控制代碼通過和處理他們如下

if (node != null && !node.IsDisposed) 
    { 
     node.Resize -= docNode_Resize; 
     node.DocumentRefreshRequested -= docNode_DocumentRefreshRequested; 
     node.Dispose(); 
    } 

是否需要刪除事件部分?看起來像Dispose()就足夠了。

+1

這已被問了很多很多很多次。 https://www.google.com/#hl=en&output=search&sclient=psy-ab&q=site:stackoverflow.com+dispose+object+remove+event+handlers&oq=site:stackoverflow.com+dispose+object+remove+event +處理程序&gs_l = hp.3 ... 2009.14157.0.15027.86.71.12.0.0.0.178.8365.13j58.71.0.les%3Beqn%2Crate_low%3D0-035%2Crate_high%3D0-035%2Cmin_length%3D2%2Ccconf%3D1-2 %2Csecond_pass%3Dfalse%2Cnum_suggestions%3D1%2Cignore_bad_origquery%3Dtrue..0.0 ... 1c.1.S3iqf646p8Q&PBX = 1&BAV = on.2,or.r_gc.r_pw.r_cp.r_qf。&FP = 7e599a8195490a44&BIW = 1440&波黑= 799 –

回答

2

有人問了很多次

不,你不需要,除非:

  • 事件是靜態訂閱
  • 事件和訂閱(從個人的expirience,在內存消費方面退訂利益)的大規模量
相關問題