我是否应该取消订阅我的所有控制器事件而不需要?

时间:2015-02-01 15:41:48

标签: c# winforms events

我有Winforms应用程序。我的应用程序使用Pcap文件并通过机器适配器传输来自此文件的所有数据包。

在我的用户界面中,我有很多控制器事件,例如我的所有GridView事件(CellChanged, RowChanged...)

虽然我的应用程序处于传输过程中,但我并不需要这样做,所有UI更新都是通过计时器来检查负责此传输的我的班级所以我的问题是我应该取消订阅所有这些事件?

这样做有好处吗?

3 个答案:

答案 0 :(得分:0)

如果此事件完成了他的工作,并且将来不需要执行这些事件,您可以取消订阅某些事件。如果您在执行某些操作时不需要执行此操作,也可以取消订阅事件。

答案 1 :(得分:0)

您无需取消订阅活动。由于您通过计时器更新UI,只需在计时器上使用您想要的事件。取消订阅不会给你那么多优势

感谢。

答案 2 :(得分:-1)

编辑:似乎我的答案很简短,为您添加了更多选项:

  • 您将不再使用控制器: UNREGISTER - 对象将保留在内存中,直到它们存在任何引用。因此,您将最小化内存泄漏。
  • 您将使用具有其他UI的控制器: UNREGISTER - 内存泄漏将位于UI对象的一侧。
  • 您将再次使用UI和控制器:您可以取消注册并再次注册它们,或者只添加一个bool,这些处理程序应该被禁用一段时间。

如果处理程序执行了大量代码,您还可以在不需要时停止执行它们时看到性能改进。