我有一個程序在用戶單擊按鈕後在後臺運行相當長的操作。我已經實現了一個進度條,但如果窗口被觸摸或移動,那麼它會灰色並說(不重新調整)。一切仍然有效,當操作結束時程序恢復功能。 (但是用戶不知道這個:(不允許vb.net程序進入「無響應模式」的技巧
的最佳途徑的任何想法從happeneing 保持這個我用vb.net工作在Visual Studio 2010
我有一個程序在用戶單擊按鈕後在後臺運行相當長的操作。我已經實現了一個進度條,但如果窗口被觸摸或移動,那麼它會灰色並說(不重新調整)。一切仍然有效,當操作結束時程序恢復功能。 (但是用戶不知道這個:(不允許vb.net程序進入「無響應模式」的技巧
的最佳途徑的任何想法從happeneing 保持這個我用vb.net工作在Visual Studio 2010
移動你的加工出來的主UI線程進入後臺工作線程是最好的解決辦法,但短期修復只是爲了讓窗口響應可能是在處理代碼中的適當位置使用Application.DoEvents。
但是請注意,如果用戶仍然可以在表單上執行操作,則可以創建一些re-entrancy problems。
我猜想,一些使用線程將有助於您可以將實際操作發送到與正在運行的應用程序不同的線程中,而不是使用線程。
使用BackgroundWorker或線程池可在不同線程上運行任務,同時保持UI(用戶界面)響應。
另外,看看這個優秀的免費電子書(在C#恐怕)的一切,你需要了解線程:
一直在尋找下面提到的兩個答案,但還沒有與他們玩耍。有沒有什麼可以阻止它說「超時」 – sealz 2011-06-06 19:40:36