在Windows CE 6.0中退出时终止应用程序

时间:2013-10-30 00:11:39

标签: c# compact-framework windows-ce

我使用Windows CE 6.0使用.NET CF 2.0 SP2编写的应用程序在ARM处理器设备上运行C#

我遇到问题,我的应用程序在关闭后继续运行。应用程序打开与设备连接的连接,并且在正确关闭之前不会释放它。因此,我无法在应用程序继续运行时重新打开并使用该应用程序,并且我无法运行其他希望使用所连接设备的应用程序。

我尝试运行Application.Exit()并且我的所有主题都将IsBackground属性设置为true,但这不起作用。关闭应用程序后,我可以使用任务管理器,看到该过程继续运行。

我通常会使用Environment.Exit()但不幸的是,这在CF中不可用。

是否有任何我可以尝试使用的方法或导致这种情况发生的原因?

感谢。

3 个答案:

答案 0 :(得分:5)

您可以尝试这样的事情:

Process thisProcess = Process.GetCurrentProcess();
thisProcess.Kill();

看看会发生什么。关闭应用程序显然不是理想的,但它可能是最后的手段,特别是如果您在此之前手动处理数据的保存和丢弃。

答案 1 :(得分:1)

对于仍在努力解决这个问题的人:

我发现问题在于,使用Windows CE / WEHH / .NET Compact时,应用程序在按下表单上的X按钮时不会退出,它们只会被最小化(意味着不会调用关闭事件)。 / p>

根据this页面上的一个答案,可以通过将表单属性“MinimizeBox”设置为false来更改关闭按钮以实际退出应用程序。

this.MinimizeBox = false;

这会将X按钮更改为OK按钮,并完全退出应用程序。

答案 2 :(得分:0)

可能这可以帮助。在调用 Application.exit()之前,将线程的背景属性设置为 false ;

private void BtnExit_Click(object sender, EventArgs e)
{
  Thread1.IsBackground = false;
  Thread2.IsBackground = false;

  Application.exit();
}