繁体   English   中英

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

[英]How to keep process running after closing the program?

我现在正在使用C#在带有.Net Compact Framework 3.5的Windows Mobile 6.5上开发应用程序。 程序中有一个功能,我可以用它来定期从服务器端更新位置信息,但是如果我继续运行此计算,则会花费太多精力。 由于这个原因,我想在后台运行它,并尝试使用BackgroundWorker做到这一点,并且效果很好。

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

关闭程序时,是否有任何方法可以使更新过程(在内存中的某个位置)保持运行? 然后可以在重新启动程序时还原信息?

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

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

因此,解决方案是不关闭表单,只需隐藏它即可。 默认情况下,表单的“ MinimizeBox”属性应为true,并且其右上角应具有[X]。 单击此按钮将最小化表单,并且不会退出您的应用程序。

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

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

如果.NETCF 3.5也是如此,那么我认为您在这里不需要任何操作。 即使关闭了应用程序,后台工作仍将运行。

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM