我们有一个内置在 C# 中的 SmartClient,当它运行的 PC 重新启动时,它顽固地保持打开状态。这将停止重新启动过程,除非用户首先关闭 SmartClient 或有其他一些手动干预。
当基础架构团队远程安装需要重新启动机器的新软件时,这会导致问题。
让 SmartClient 应用程序识别来自 Windows 的关机/重启事件并优雅地杀死自己的任何想法?
更新: 这是一个具有多个 gui 线程的高度线程化的应用程序。是的,多个 gui 线程。它实际上是许多项目的整合,这些项目本身可能是独立的应用程序——所有这些项目都是从一个集中这些管理方法并跟踪这些线程的单个 exe 启动和管理的。我不相信使用后台线程是一种选择。