2011-02-10 70 views
-1

嘿所有 我想知道是否有反正,我控制的循環,所以如果我按下按鈕超過一次節目劑量不FREEZ做for循環再次用於閉環控制

+1

你可以發佈你的代碼 - 沒有它,我們不能真正說出發生了什麼。 – ChrisF 2011-02-10 09:16:58

+1

你將不得不使用一點硬件。首先嚐試描述這個問題,這樣我們都可以理解它,同時指定你正在使用的語言/平臺/框架,以及一些代碼也不會傷害:) – TimothyP 2011-02-10 09:17:16

回答

0

如果您的循環正在同步執行,它不應該是一個問題。

如果它異步執行,您可以維護一個標誌以避免併發執行。

此外,如果您發佈代碼並提供更多關於您正在嘗試執行的操作的信息,將會非常有幫助。

4

如果for循環在UI線程上運行,則不會。發生了什麼是你阻止UI線程處理消息泵,所以應用程序沒有反應(即它「掛起」)。

如果你需要在一個像這樣的緊密循環中運行一些相對昂貴的操作在單獨的線程上這樣做。看看BackgroundWorker課程。該類公開了一些事件,使得在另一個線程上啓動操作變得非常簡單。您可以在UI線程中設置一個取消標誌,該標誌可以在循環內部進行檢查。

0

您應該在後臺線程上運行循環。編寫循環,以便在WaitHandle發送信號時退出。當再次按下按鈕時,只需發信號通知等待手柄退出循環。