嗯,很明显,如果你不希望执行其余的方法代码,你需要在Form.Close之后使用return。我的意思是像这样的嘘声:
private void SomeMethod()
{
if (someCondition)
{
Close();
return;
}
SomeOtherMethod;
}
但是如果从其他地方或标准控制事件处理程序调用此SomeMethod会怎样?像Handler一样 - >方法1 - >的someMethod。如果从SomeMethod调用Close()然后执行return,那么Method1和Handler代码会一直执行到最后还是最后会关闭?
有没有办法立即使用Close,well,close形式?我的意思是,就在这个地方之前,所有序列都没有完成执行?
答案 0 :(得分:1)
仅仅因为您的表单已关闭并不意味着该进程已停止,因此代码将被执行。
如果您不想在关闭SomeMethod
内的表单后执行任何其他代码,只需重写您的代码,这样SomeMethod
将在不需要时返回false
执行其他任何事情。
答案 1 :(得分:1)
如果这是您的应用程序的主要形式,您可以立即致电Application.Exit()
。虽然,但并非适用于所有情况。您应该使用bool
作为嵌套方法的返回类型,并相应地决定流程。
答案 2 :(得分:0)
由于UI在单个线程中运行,因此所有操作都按顺序执行。
答案 3 :(得分:0)
调用Form.Close()
方法时,表单立即关闭,但该方法继续运行。尝试在按钮事件处理程序中运行以下代码,同时查看“输出”窗口以在操作中查看它:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("Closing...");
Close();
Thread.Sleep(5000);
Debug.WriteLine("End of method.");
}