如何使循环无限运行而无需用户采取任何措施

时间:2018-11-21 08:48:06

标签: c# loops infinite-loop

我已经启动了一个有趣的小应用程序,它需要使“ form1”(请参见代码)永远保持打开新窗口的状态。这样做,但是仅在关闭前一个窗口后才执行循环。因此,基本上它需要同时保持永远打开其他窗口,而用户无需关闭已经打开的窗口。 Picture of current code

整个文件的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PeppaPig
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
        loop:
            Application.Run(new Form1());
            goto loop;
        }
    }
}

谢谢!任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

您的代码一直等到...

Application.Run(new Form1());

...已完成。若要实现所需的行为,您应该创建Form1的实例并调用它的Show()。

要实现无限循环,有多种方法。

while(true)
{
   //do something
}

for(;;)
{
    // do something
}

或者就像您已经做过

:loop
// do something
goto loop;

所以这是一个如何获得所需行为的示例:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        while (true)
        {
            var newForm = new Form1();
            newForm.Show();
        }
    }

答案 1 :(得分:0)

您应该将主要功能更改为类似的内容。

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());

       while (true)
       {
            Form1 frm = new Form1();
            frm.Show();
       }
    }