我有一個窗體經歷一個無限循環並處理數據。當我點擊一個「關閉」窗體的按鈕時,窗體即使關閉,也會繼續處理。我希望表單完全結束並退出其循環語句,然後打開一個新表單。VB.NET - 中斷窗體循環和結束窗體
這裏是我使用的關閉表單
frmMain.Close()
frmMain.Dispose()
注意代碼:我不使用線程,它只是一個簡單的VB.NET應用。我沒有關閉主要的啓動表單。
我有一個窗體經歷一個無限循環並處理數據。當我點擊一個「關閉」窗體的按鈕時,窗體即使關閉,也會繼續處理。我希望表單完全結束並退出其循環語句,然後打開一個新表單。VB.NET - 中斷窗體循環和結束窗體
這裏是我使用的關閉表單
frmMain.Close()
frmMain.Dispose()
注意代碼:我不使用線程,它只是一個簡單的VB.NET應用。我沒有關閉主要的啓動表單。
這樣做的「正確」方式是真正使用後臺工作線程。但是這也可以在不需要後臺工作線程的情況下工作。
聲明表單類中的變量。
Private keepLoopAlive As Boolean
然後再編寫處理循環是這樣的:
keepLoopAlive = True
Do While keepLoopAlive
(your code that loops here)
DoEvents
Loop
然後在你關閉事件做:
keepLoopAlive = False
Me.Close()
這將導致循環結束它得到第一次機會,你的表格應該關閉。
請注意我已經從內存中編寫了這些代碼,而不是在IDE中,因此可能會出現拼寫錯誤。
我不是.NET開發人員,所以這可能是無效的,但如果我執行無限循環,我會檢查每次我開始循環仍然有效的某種布爾值,如果它失敗,退出循環。
當您關閉表單時,將布爾值設置爲false並且它將會退出,並且您可以有一個等待並重新啓動循環的外部循環,或者您可以重新啓動整個函數。
謝謝!我結束實施這個到我的程序中,它很好用!我原本是問我是否可以突然結束表單過程而不必特別退出循環,但聽起來這是不可能的。 – Phil 2011-01-24 04:08:32