是否有必要取消订阅活动?

不取消订阅c#中的事件可能有多严重? 是强制性还是可取的行动?

这是您应该考虑的MSDN文档中的重要部分

要防止在引发事件时调用事件处理程序,只需取消订阅该事件即可。 为了防止资源泄漏,在处置订阅者对象之前取消订阅事件非常重要。 在取消订阅事件之前,发布对象中作为事件基础的多播委托具有对封装订阅者事件处理程序的委托的引用。 只要发布对象保存该引用,您的订阅者对象就不会被垃圾回收。

这取决于订阅者和发布者的生存时间。 以下是关于该问题的深入文章以及如何在此处解决问题的几种方法: 解决事件问题:弱事件处理程序

取消订阅活动非常重要。 如果你不这样做,那么订阅者就不能被垃圾收集,导致 – 实质上 – 内存泄漏。 以下是您未取消订阅时可能遇到的问题的一个很好的示例:

http://developers.slashdot.org/article.pl?sid=07/11/17/0552247

此外,它可能会导致性能问题,因为事件处理程序将继续被调用,即使它不再对您有用。

另一方面,如果您刚刚结束程序的执行,那么没有理由取消订阅事件。 它当然不是强制性的,我认为没有理由推荐它。