如何在C#中处理Inifinite循环

Tro*_*out 2 c# infinite-loop

我有一个小程序,它应该从通过USB连接的设备中取样一些值.我想每隔0.5秒对设备进行一次采样 - 所以我创建了一个每500毫秒重复一次的循环并且运行良好:

while(_bool)
{
    Sample_USB_Device();
    Present_Data_To_Screen();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

我该如何控制_bool变量?当我运行代码时,GUI冻结,我没有任何访问权限.我试图使用Threads,但是我无法将数据从线程发送回GUI(或者我不知道如何).

Mar*_*ers 7

您可以使用Timer以指定的时间间隔运行代码,而不是使用循环.可以启用或禁用计时器.