作为我的应用程序启动过程的一部分,它会检查数据的完整性,如果发现问题,它会向用户弹出一条消息,告诉他们可能需要一段时间才能修复。
我正在使用MessageBox.Show显示消息。因为数据检查是从工作线程完成的,所以我切换到UI线程进行该调用,然后设置ManualResetEvent以在用户确认消息时告诉工作线程。
我从应用程序生命周期的早期开始,通过分离一个工作线程(使用ThreadPool),从主Application类中的构造函数启动数据检查/加载。
当我使用调试器运行并显示消息时,应用程序只是等待输入。当我在没有调试器的情况下运行时,应用程序在显示对话框10秒后终止。
那10秒是一个很大的线索 - 它告诉我操作系统认为应用程序花了很长时间才能初始化(操作系统会杀死启动时间太长的应用程序)。
我认为我的MessageBox.Show在App.RootFrameNavigating有机会被调用之前阻塞了UI线程。
我的问题:
答案 0 :(得分:0)
我认为您的问题是在Application构造函数中启动工作线程的结果。您应该使用适当的生命周期事件,在这种情况下:PhoneApplicationService.Activated Event
答案 1 :(得分:0)