gpt4 book ai didi

c# - 我什么时候应该注销系统事件以防止内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:11 25 4
gpt4 key购买 nike

我正在使用这样的系统事件:

            SystemEvents.SessionEnding += SystemEventsSessionEnding;

检测用户何时关闭或注销,但我读到我需要注销此事件以防止内存泄漏等。

我应该什么时候/在哪里做?

我已经看到我可以在 SystemEvents.EventsThreadShutdown 中做到这一点,这个事件将在系统事件触发之前触发,如果这是真的,那么这应该是我应该取消注册我的系统事件的地方?

或者我应该在我的主窗体 FormClosing 事件中这样做吗? FormClosing 事件会一直被触发吗?

谢谢!

最佳答案

您是否只在程序开始时订阅一次,并且只有在您的进程终止时才取消订阅?如果是这样,请不要打扰。

当您的进程终止时,如果周围有任何“系统级” Hook ,操作系统有责任为您清理这些 Hook - 您无需担心。尽管进程不再存在,但操作系统不会阻止您的对象被垃圾收集:)

关于c# - 我什么时候应该注销系统事件以防止内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com