我有这样的流量。
Thread t = new Thread(delegate()
{
//Много-много кода в потоке который грузит файлы из интернета
u("Завершение установки..."); //Просто записывает текст в файл
Form d = new Form5();
d.Show();
this.Close();
});
t.IsBackground = true;
t.Start();
在他的工作结束时,另一个表格打开,当前表格关闭。但是结果完全不一样,又打开了一会,之后第一个和第二个窗体都关闭了,程序进程继续挂在后台。我认为问题出在流程中,因为我有相同的表单调用并且它在任何地方都有效,只是这里出了点问题。
以防万一,Program.cs
Application.SetCompatibleTextRenderingDefault(false);
Form d = new Form1();
d.Show();
Application.Run();
实际上是一个问题-我错过了什么?为什么线程结束时所有窗体都关闭了,程序进程一直挂在后台?
如果这一行:
这是应用程序的主要形式,那么程序的行为是正常的。您无法关闭主窗体。但它可以隐藏。例如,通过调用隐藏。另外,你有一个例外。因为 您不能使用创建它的线程以外的线程中的视觉元素。不知何故,代码应如下所示:
但是在这里您需要考虑如何关闭主窗体以停止整个应用程序。