关闭Windows Mobile控制台应用程序

时间:2009-05-21 09:39:38

标签: c# .net windows-mobile console-application

在Windows Mobile上关闭控制台应用程序的最佳和最干净的方法是什么?

默认情况下,应用程序是不可见的,您无法在正在运行的程序中看到它,这对于运行后台进程非常有用,但有时用户可能需要将其关闭..

4 个答案:

答案 0 :(得分:1)

退出Main。认真。如果您需要某人能够手动退出,则需要有一些机制,如shell图标和菜单或程序文件夹中的程序。用户怎么会知道它正在运行?然后,这些视觉提示中的任何一个都会设置一个命名系统事件,而在您的控制台应用程序中,您可以监听同一事件(可能是工作人员)。设置完成后,您将执行关闭所需的操作。

答案 1 :(得分:0)

这是一个很好的问题。我曾经花了很长时间时间试图解决这个问题。当然,我们假设您不能(轻松)从Main返回。桌面上的正确答案是System.Environment.Exit;但CF方便地不支持该方法。

明显的第二个选项是Application.Exit。这是在CF上,但仅适用于WinForms,实际上并不能保证退出您的应用程序。

所以,抛出一个未处理的异常。 ;)

编辑:要从其他应用程序以编程方式终止它,您可以查看Process.GetProcessByIdProcess.Kill。这两种都可以在CF上找到。你必须以某种方式让“杀手”应用程序找出“受害者”的ID。 CF上没有更方便的方法,如Process.GetProcessesByName。   但是,这种技术并不优雅,并且可能存在权限问题。

您还可以考虑某种IPC(进程间通信),也许可以在this previous Windows Mobile answer中进行概述。

答案 2 :(得分:0)

如果应用程序在UI中不可见,用户将如何关闭它?

答案 3 :(得分:0)

我决定在配置文件中读取一个布尔值(保持活动状态),并在我想要退出时让另一个应用程序将其设置为false。

它不那么敏感,但至少我可以干净利落地退出..