繁体   English   中英

如何重新启动C#移动应用程序?

[英]How do I restart my C# Mobile Application?

我阅读了许多论坛和链接,例如:

如何重新启动C#WinForm应用程序?

但所有这些都是针对Windows而非移动设备的。 遇到未处理的异常时,如何重新启动移动应用程序。 现在,当我捕获到未处理的异常时,应用程序已关闭,但我不想关闭它,因此我想重新启动它。

这不起作用:

ProcessStartInfo s = new ProcessStartInfo();
            s.FileName = Assembly.GetExecutingAssembly().GetName().CodeBase;
            s.UseShellExecute = false;
            Process.Start(s);

我正在使用Windows Mobile 6.1和CF 3.5

WinMo具有一种机制,可防止应用程序的多个实例运行,因此使用Process类调用自己只会启动外壳终止的实例。 您必须解决该问题 ,P /调用CeRunAppAtTime或创建一个单独的看门狗进程,以确保您的应用程序进程始终运行,如果检测到它已经消失,则启动一个新实例。。请注意, CeRunAppAtTime无法安排应用程序距离未来不到11秒,因此会有延迟。

你不应该 最好的方法是首先修复导致该异常的错误,以防止该异常。

但是,如果您确实真的因为崩溃以外的任何其他原因需要重新启动应用程序,则可以在后台启动另一个进程以及Process.Start()应用程序是否仍在运行的应用程序,并使用Process.Start()启动它。再次,如果没有。

(如果您的应用程序设置为在设备上自动运行,并且设备支持该设备-不太可能,因为这是Windows CE,但为什么不这样做-如果需要,您还可以创建Watchdog计时器来重新启动整个设备。)

但是始终重新启动应用程序(例如每天一次)会破坏用户体验以及用户的信任。 因此,您应该改正异常。

暂无
暂无

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

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