【问题标题】:Form Closed Event is not being fired表单关闭事件没有被触发
【发布时间】:2011-10-04 10:05:59
【问题描述】:

当应用程序从 Task Manager 关闭时,Form_Closed Event 没有触发,有没有办法处理这个问题,因为我的应用程序正在编写始终是运行时的文本文件,因此我需要完成包含线程的数据并关闭Form_Closed 上的StreamWriter,因此无论我的应用程序如何关闭,如何处理它,来自用户, ALT+f4 或任务管理器

【问题讨论】:

  • 可能需要将 POWER CUT 添加到您的列表中 :)
  • 杀死一个进程,实际上确实杀死了这个进程。不会触发任何事件,也不会运行 finally 块。
  • @leppie 所以这意味着我可以在我的应用程序中有一个无法关闭的漏洞?
  • @Cody:我不明白你的意思。
  • @leppie 我的意思是我有一个无法解决的问题,因为我真的很需要那个。另一个解决方案可能是阻止任务管理器关闭我的应用程序。类似防病毒软件的东西,所以我只能从应用程序中允许应用程序关闭。

标签: c# visual-studio-2010 events taskmanager


【解决方案1】:

实现IDisposable 接口并从那里调用StreamWriter 上的Dispose()

【讨论】:

    【解决方案2】:

    要获得这种情况,您需要处理Application.Exit 事件。

    在应用程序关闭之前发生,并且无法取消。

    在这里,您可以确保所有数据都写入文件并正确关闭 - 当然如果它还没有关闭的话。

    【讨论】:

    • 这也不起作用,尝试应用它并从任务管理器关闭应用程序它不会引发此事件
    • @Cody - 哦,我以为是的。您是从“进程”选项卡中终止进程还是从“应用程序”选项卡结束任务?
    • 是的,我正在从“进程”选项卡中杀死进程,也可以从外部应用程序中使用 Process.kill() 对其进行测试;
    • @Cody - 在这种情况下,您将不会在应用程序中收到任何通知它即将关闭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2014-11-29
    相关资源
    最近更新 更多