无限 while/for 循环不挂在视觉 studio/C#

Infinite while/for loop without hanging in visual studio/C#

我想要实现的是在我的 GUI/visual C# 中无限循环我的代码,因为我正在通过 USB 数据线读取信息。

我已成功读取代码,但每次单击按钮时它只显示一个读数。我知道如果我想让我的代码无限地 运行,我需要循环它。

我尝试了下面的代码,但我的程序仍然挂起

while(true)
{
     //loop
     System.Threading.Thread.Sleep(10000);
}

我找到了这个 post 并想尝试计时器方法,但是我不知道把这段代码放在哪里。

System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
timer1.Interval=60000;//one minute
timer1.Tick += new System.EventHandler(timer1_Tick);
timer1.Start();

我正在使用 Microsoft Visual studio 2010,谁能指导我使用此代码?

请忘记在您的程序中创建这样的循环,它们会杀死实际上 运行 正在您的 UI 中的 UI 线程,结果总是很糟糕!

您可以 运行 那个计时器,您的代码缺少 timer1_Tick 的实现,在那个函数中,运行 您想要的代码。在上面的当前配置中,此计时器将每分钟 运行 并执行 timer1_Tick 中的任何内容。这个不错Example

另一种选择是创建一个线程来完成读取 USB 的工作,让 UI 线程单独工作。我认为这是一个更难实现的选项,因此请使用计时器选项。