在我的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秒。我该如何加快这个过程?
谢谢!
答案 0 :(得分:2)
我们不知道你的应用在关闭时实际在做什么。 Application.Exit()
来电后会发生什么?运行时必须清理东西 - 因此它必须调用Dispose on objects并运行该代码,完成所有操作,关闭连接以及任何打开的硬件接口,停止所有子线程并释放GC内存。你很容易在Dispose方法或Finalizer中有一些需要很长时间才能执行的东西。
如果您还没有感觉到导致问题的原因,请开始删除大的功能块以查看哪个功能块导致缓慢,然后向下钻取,删除越来越小的碎片,直到找到它为止。