我在我的VB.NET應用程序中運行幾個長時間的同步操作,每個操作可能需要幾分鐘才能完成。在這些操作過程中,表單將變爲白色,標題欄將顯示「Not Responding」,並且一些用戶可能會認爲它已停止工作,但實際上它仍在運行時可能會關閉該應用程序。在長時間同步操作期間刷新表格
我很確定我需要多線程來做到這一點,但我最初的努力並未成功。在這些長時間的操作正在運行時,每隔幾秒鐘刷新一次表單的最簡單方法是什麼?
我在我的VB.NET應用程序中運行幾個長時間的同步操作,每個操作可能需要幾分鐘才能完成。在這些操作過程中,表單將變爲白色,標題欄將顯示「Not Responding」,並且一些用戶可能會認爲它已停止工作,但實際上它仍在運行時可能會關閉該應用程序。在長時間同步操作期間刷新表格
我很確定我需要多線程來做到這一點,但我最初的努力並未成功。在這些長時間的操作正在運行時,每隔幾秒鐘刷新一次表單的最簡單方法是什麼?
您可以使用Apllication.DoEvents
這可能會導致其他問題,如再次入侵問題。 – 2009-11-13 14:46:05
有BackgroundWorker的here類的一個很好的示範。基本上,您需要在後臺執行任務,並定期通過提升主線程捕獲的事件來更新主線程的狀態。 BackgroundWorker類具有您在大多數情況下所需的所有功能。在後臺運行該任務將使您的應用程序響應。
我會upvote,如果你將包括一個如何使用這將解決OPs問題的例子。事實上,答案只是非常有幫助。 – tvanfosson 2009-11-13 14:47:35
+1該鏈接提供了一個非常好的例子。 – Nifle 2009-11-13 14:50:44
@Nifle - 引用示例代碼來改進答案,或者在這種情況下,因爲示例代碼很長,請描述如何使用該類來解決問題。我希望在這裏看到更完整的答案,因爲如果鏈接斷開,這個答案將變得毫無用處。在回答時,你需要記住,最終答案需要獨立地站在自己的位置,而不管它鏈接到哪個資源。 – tvanfosson 2009-11-13 14:58:17