我使用Windows CE 6.0
使用.NET CF 2.0 SP2
编写的应用程序在ARM处理器设备上运行C#
。
我遇到问题,我的应用程序在关闭后继续运行。应用程序打开与设备连接的连接,并且在正确关闭之前不会释放它。因此,我无法在应用程序继续运行时重新打开并使用该应用程序,并且我无法运行其他希望使用所连接设备的应用程序。
我尝试运行Application.Exit()
并且我的所有主题都将IsBackground
属性设置为true
,但这不起作用。关闭应用程序后,我可以使用任务管理器,看到该过程继续运行。
我通常会使用Environment.Exit()
但不幸的是,这在CF中不可用。
是否有任何我可以尝试使用的方法或导致这种情况发生的原因?
感谢。
答案 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();
}