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

C# 在Windows CE 6.0中退出时终止应用程序,c#,compact-framework,windows-ce,C#,Compact Framework,Windows Ce,我正在ARM处理器设备上运行WindowsCE6.0,使用.NETCF2.0SP2,并使用C编写的应用程序 我遇到一个问题,我的应用程序在关闭后继续运行。应用程序打开与连接到设备的某物的连接,直到正确关闭后才释放。因此,在应用程序继续运行时,我无法重新打开并使用该应用程序,也无法运行希望使用连接设备的其他应用程序 我已尝试运行Application.Exit(),我的所有线程都将IsBackground属性设置为true,但这不起作用。关闭应用程序后,我可以使用任务管理器,并查看流程是否继续运行

我正在ARM处理器设备上运行
WindowsCE6.0
,使用
.NETCF2.0SP2
,并使用
C
编写的应用程序

我遇到一个问题,我的应用程序在关闭后继续运行。应用程序打开与连接到设备的某物的连接,直到正确关闭后才释放。因此,在应用程序继续运行时,我无法重新打开并使用该应用程序,也无法运行希望使用连接设备的其他应用程序

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

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

有没有什么方法可以让我尝试和使用,或者是什么原因导致了这种情况的发生


谢谢

您可以尝试以下方法:

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

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

这可能会有所帮助。在调用Application.exit()之前,将线程的后台属性设置为false

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

  Application.exit();
}

对于仍在为此挣扎的任何人:

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

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

this.MinimizeBox = false;

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

啊,我没有想到使用它作为临时修复,它也可以工作。正如你所说的,这并不理想,但在我找出问题的原因之前,最好同时使用它。谢谢。您是否尝试在调试器中运行应用程序?您可以尝试在它处于“僵尸”状态时将其破坏,以了解是什么阻止它终止。