为什么应用程序退出需要这么长时间? Windows mobile 6.5 C#

时间:2011-06-27 09:20:14

标签: windows windows-mobile windows-mobile-6.5

在我的Windows应用程序中,当用户单击电源关闭按钮时,我会执行以下操作:

        void PowerButton_ButtonClicked(object sender)
    {
        DialogResult dl = MessageBox.Show(Globals.SECUEXIT, Globals.CMD_EXIT, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
        if (dl == DialogResult.Cancel)
        {
            return;  //Power off canceled, nothing to do
        }
        else
        {
            Program.btConn.send(BtMsg.OFF);          //Send the turn off instruction to the BT device.
            Program.scr_SplashScreen.exitRequest();  
            Application.Exit();
        }
    }

在我的手机关闭应用程序之前需要大约15秒。我该如何加快这个过程?

谢谢!

1 个答案:

答案 0 :(得分:2)

我们不知道你的应用在关闭时实际在做什么。 Application.Exit()来电后会发生什么?运行时必须清理东西 - 因此它必须调用Dispose on objects并运行该代码,完成所有操作,关闭连接以及任何打开的硬件接口,停止所有子线程并释放GC内存。你很容易在Dispose方法或Finalizer中有一些需要很长时间才能执行的东西。

如果您还没有感觉到导致问题的原因,请开始删除大的功能块以查看哪个功能块导致缓慢,然后向下钻取,删除越来越小的碎片,直到找到它为止。