我正在创建一个新线程,其中仅包含以下代码:
void myThread()
{
new Form1().Show();
}
为提问而保持通用性。
我怎样才能阻止这个线程结束?因为线程结束,窗体关闭。我怎样才能继续线程,以便表单可以保持打开状态,并且仍然触发事件(例如按钮单击等)
谢谢你的帮助 :)
我正在创建一个新线程,其中仅包含以下代码:
void myThread()
{
new Form1().Show();
}
为提问而保持通用性。
我怎样才能阻止这个线程结束?因为线程结束,窗体关闭。我怎样才能继续线程,以便表单可以保持打开状态,并且仍然触发事件(例如按钮单击等)
谢谢你的帮助 :)
好吧,如果你使用多线程来显示一个额外的表单,你应该调用它Application.Run(Form)
。
编辑:为了清楚起见,该Application.Run
方法不会在表单关闭之前结束。所有事件等都将起作用。
以模态方式显示表单怎么样 - 尽管您为什么要创建一个新线程来显示表单?
void myThread()
{
new Form1().ShowDialog();
...
只是要明确一点-我相信这将有效地锁定您的新线程,直到表单关闭。
只需在您的线程中放置一个无限循环就很容易,例如:
void myThread()
{
new Form1().Show();
while(true)
{
Thread.Sleep(16);
}
}
我为什么要睡线程?...因为考虑到极快的迭代,运行一个内部没有任何内容的无限循环是相当 CPU 密集型的。16 毫秒的睡眠为您提供 60 fps 的速度,这对于您可能想要的响应速度来说绰绰有余。无论如何,为什么需要在单独的线程中显示表单?