none
Win10 不能激活Windwos Stroe应用程序,提示的错误是应用程序不能在规定的时间内启动 RRS feed

  • 问题


  • 在这个uwp的启动阶段我需要运行好几个文件,但是其中有一个文件运行时间较长,就会导致这个错误,如果去掉这个文件,能够正常运行。

    此外,在调试状态下程序也运行正常(包括运行时间较长的那个文件)。

    所以,我想知道这个错误是因为启动超时导致的还是其他的什么原因?如果是前者,那么UWP程序对于启动时间有什么限制么?我该怎么修复它?

    2019年11月14日 9:36

全部回复

  • 您好,

    当应用在初始化时要运行耗时较长的任务,为了用户体验,请考虑使用创建自定义启动屏幕(SplashScreen)

    简单来说,这个流程就是创建一个新的Page(它和启动屏幕很像),在软件初始化时立刻加载这个Page,这样系统会认为软件已经加载完毕,在这个Page内,你可以执行一些长耗时的任务,执行完毕后,再导航至MainPage即可。

    祝好。


    "Developing Universal Windows apps" forum will be migrating to a new home on Microsoft Q&A (Preview)!
    We invite you to post new questions in the "Developing Universal Windows apps" forum’s new home on Microsoft Q&A (Preview)!
    For more information, please refer to the sticky post.

    2019年11月15日 1:08
  • 但是没有出现停止响应的情况。我这个处理文件的动作就想放在启动的阶段,因为想用命令启动,不想在启动之后再点击某个按钮之类的再处理文件。另外,这个文件处理虽然很慢,但是一直有在运行。针对这种情况,有什么好办法么?
    2019年11月15日 5:45
  • 您好,

    有两种方式,您可以按需选择。

    1. 如果应用在首屏加载中不需要依赖这些文件处理的操作(比如自动同步数据,或者一些文件检查之类的工作),可以将这些文件处理的操作放在一个方法内,在MainPage加载时以同步方式调用异步方法,如:

    public MainPage()
    {
        this.InitializeComponent();
        FileHandle();
    }
    
    public async void FileHandle()
    {
        // File process
    }

    2. 如果首屏需要文件处理的结果,这个时候建议还是使用自定义启动屏幕。

    对于用户来说,如果应用长时间处于启动状态(即打开应用时的LOGO页面),用户是无从得知当前应用的工作状态的,很容易会认为应用已经假死,或者陷入漫长的等待焦虑,这一点是我们应该避免的。

    所以至少创建一个等待页面,在页面中加入一个ProgressRing,用以提醒用户软件正在工作。

    P.S. 如果每次加载应用都需要进行长时间文件处理,您可以修改默认的导航页面,在App.xaml.cs中,将默认的MainPage改为您指定的等待页面即可。这不需要用户进行额外的操作。

    祝好



    "Developing Universal Windows apps" forum will be migrating to a new home on Microsoft Q&A (Preview)!
    We invite you to post new questions in the "Developing Universal Windows apps" forum’s new home on Microsoft Q&A (Preview)!
    For more information, please refer to the sticky post.

    2019年11月21日 7:11