0

在我的 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 秒。我怎样才能加快这个过程?

谢谢 !

4

1 回答 1

2

我们不知道您的应用关闭时实际在做什么。通话后会发生什么Application.Exit()?运行时必须清理东西——所以它必须在对象上调用 Dispose 并运行该代码,完成所有内容,关闭连接和您打开的任何硬件接口,停止所有子线程并释放 GC 内存。您可以轻松地在 Dispose 方法或 Finalizer 中包含需要很长时间才能执行的内容。

如果您对导致问题的原因尚不了解,请开始删除较大的功能块以查看导致速度缓慢的功能块,然后深入研究它,删除越来越小的部分,直到找到它。

于 2011-06-27T14:21:59.503 回答