-1

我正在创建一个新线程,其中仅包含以下代码:

void myThread()
{
    new Form1().Show();
}

为提问而保持通用性。

我怎样才能阻止这个线程结束?因为线程结束,窗体关闭。我怎样才能继续线程,以便表单可以保持打开状态,并且仍然触发事件(例如按钮单击等)

谢谢你的帮助 :)

4

3 回答 3

2

好吧,如果你使用多线程来显示一个额外的表单,你应该调用它Application.Run(Form)
编辑:为了清楚起见,该Application.Run方法不会在表单关闭之前结束。所有事件等都将起作用。

于 2012-07-15T12:27:49.473 回答
0

以模态方式显示表单怎么样 - 尽管您为什么要创建一个新线程来显示表单?

void myThread()
{
   new Form1().ShowDialog();
...

只是要明确一点-我相信这将有效地锁定您的新线程,直到表单关闭。

于 2012-07-15T12:24:09.473 回答
-2

只需在您的线程中放置一个无限循环就很容易,例如:

void myThread()
{
    new Form1().Show();
    while(true)
      {
       Thread.Sleep(16);
      }
}

我为什么要睡线程?...因为考虑到极快的迭代,运行一个内部没有任何内容的无限循环是相当 CPU 密集型的。16 毫秒的睡眠为您提供 60 fps 的速度,这对于您可能想要的响应速度来说绰绰有余。无论如何,为什么需要在单独的线程中显示表单?

于 2012-07-15T12:31:54.863 回答