簡體   English   中英

在 Visual Studio/C# 中不掛起的無限 while/for 循環

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

我想要實現的是在我的 GUI/visual C# 中無限循環我的代碼,因為我正在通過 USB 電纜讀取信息。

我已成功閱讀代碼,但每次單擊按鈕時它只顯示一個讀數。 我明白如果我想讓我的代碼無限運行,我需要循環它。

我嘗試了下面的代碼,但我的程序仍然掛起

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

我找到了這篇文章並想嘗試計時器方法,但是我不知道將這段代碼放在哪里。

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 中的任何內容。 這是一個很好的例子

另一種選擇是創建一個線程來完成讀取 USB 的工作,而讓 UI 線程單獨存在。 我認為這是一個更難實現的選項,所以使用計時器選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM