2012-09-26 188 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,在内存消费方面退订利益)的大规模量
相关问题