在 Windows Mobile 上关闭控制台应用程序的最佳和最干净的方法是什么?
默认情况下该应用程序是不可见的,您在正在运行的程序中看不到它,这对于运行后台进程非常有用,但有时用户可能需要关闭它。
在 Windows Mobile 上关闭控制台应用程序的最佳和最干净的方法是什么?
默认情况下该应用程序是不可见的,您在正在运行的程序中看不到它,这对于运行后台进程非常有用,但有时用户可能需要关闭它。
退出主。严重地。如果您需要某人能够手动退出,则需要一些机制,例如外壳图标和菜单或程序文件夹中的某个程序。否则用户怎么会知道它正在运行?然后,这些视觉提示中的任何一个都会设置一个命名的系统事件,并且在您的控制台应用程序中,您将有一些东西在监听同一事件(可能是一个工作人员)。设置好后,您将采取关闭所需的操作。
这是一个很好的问题。我曾经花了很长时间试图弄清楚这一点。当然,我们假设您不能(轻松)从 Main 返回。桌面上的正确答案是System.Environment.Exit;但是CF不支持这种方法。
一个明显的第二个选项是Application.Exit。那是在 CF 上,但仅适用于 WinForms,实际上并不能保证退出您的应用程序。
所以,抛出一个未处理的异常。;)
编辑:要从另一个应用程序以编程方式杀死它,您可以查看Process.GetProcessById和Process.Kill。这两个都在 CF 上可用。您将不得不以某种方式让“杀手”应用程序找出“受害者”的 ID。CF 上没有更方便的方法,例如Process.GetProcessesByName 。但是,这种技术并不是那么优雅,并且可能存在权限问题。
您还可以考虑某种 IPC(进程间通信),可能在之前的 Windows Mobile 答案中进行了概述。
如果应用程序在 UI 中不可见,用户将如何关闭它?
我决定在配置文件中读取一个布尔值(保持活动状态),并在我想退出时让另一个应用程序将其设置为 false。
它不是那么敏感,但至少我可以干净地退出..