关闭程序后如何保持进程运行?

时间:2010-04-30 13:09:43

标签: c# .net-3.5 windows-mobile

我现在正在使用C#在Windows Mobile 6.5上使用.Net Compact Framework 3.5开发应用程序。程序中有一个函数,我用它来定期从服务器端更新位置信息,但如果我继续运行这个计算,它将花费太多的能量。出于这个原因,我想在后台运行它,我尝试使用BackgroundWorker来做到这一点并且运行良好。

我现在遇到的问题是我无法最小化程序,因此我必须保持程序的主要形式在前台运行,即使它没有做任何事情,这对用户来说非常不可靠。但是,当我关闭程序时,BackgroundWorker也将关闭。

当我关闭程序时,是否有任何方法可以使更新过程保持运行(在内存中某处)?然后可以在重新启动程序时恢复信息?

3 个答案:

答案 0 :(得分:1)

如何创建服务而不是后台工作者?

答案 1 :(得分:0)

如果表单关闭,则Application.Run(可能在Program.Main中调用)返回并且进程'主线程退出,导致应用程序终止。

然后,解决方案是不要关闭表单,只需隐藏它即可。默认情况下,Form的“MinimizeBox”属性应该为true,并且右上角应该有一个[X]。单击此按钮可最大限度地减少表单,并且不会退出您的应用程序。

在某些情况下,另一种选择是根本没有表格。这里的挑战是CF没有任何在表单中不接受的Application.Run重载(就像桌面框架那样)。如果您想要走这条路线,智能设备框架会提供一个。

答案 2 :(得分:0)

我没有使用.NETCF 3.5。但是在.NETCF 1.0 / 2.0的早期版本中,我观察到即使您使用(X)按钮关闭应用程序,它也会转到后台但仍保留在内存中。

如果.NETCF 3.5也是如此,那么我认为你不需要任何东西。即使您关闭应用程序,后台工作也将继续运行。

我希望这会对你有帮助。

相关问题