我有以下代码:
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Form1 ^ form = gcnew Form1;
form->ShowDialog();
//Starts the .jar file
ServerProcess *aServer = new ServerProcess();
aServer->NewServer();
return 0;
}
问题是程序会打开窗口(Form1 ^ form = gcnew Form1; form->ShowDialog();
),但在关闭表单之前它不会运行其他代码行。
为什么会这样?我该如何解决这个问题?
任何帮助将不胜感激。提前谢谢。
修改
感谢“干杯和hth.-Alf”,我现在知道由于ShowDialog()
之后的任何代码,在我关闭表格之前不会执行。 Application::Run(gcnew Form1())
导致相同的行为。
答案 0 :(得分:0)
您可以使用此方法在您的中显示模式对话框 应用。调用此方法时,后面的代码不是 执行直到对话框关闭后。
如果您只想让代码继续而不是阻止,直到弹出窗口关闭,请考虑使用Form.Show代替Form.ShowDialog。
答案 1 :(得分:0)
“当调用此方法时,直到对话框关闭后才会执行其后的代码。”如果您不希望它阻止以下代码,则需要在另一个线程中调用ShowDialog。