我正在尋找一種通用的方法來實現長時間操作中的等待屏幕。過去我曾經使用過幾次線程,但是我感覺我實施它的要麼很差,要麼太麻煩(並且複製/粘貼 - 恐怖!)。螺紋加載(等待)屏幕
我想盡可能保持通用和簡單,所以我不需要執行加載BackgroundWorker
來處理各種廢話,使事情難以維護。
這是我想做些什麼 - 請注意,這可能會從什麼實際上可能相差/最佳實踐/不管 - 使用VB.NET,框架2.0(所以沒有匿名方法):
Private Sub HandleBtnClick(sender as Object, e as EventArgs) Handles Button.Click
LoadingScreen.Show()
'Do stuff here, this takes a while!'
Dim Result as Object = DoSomethingTakingALongTime(SomeControl.SelectedObject)
LoadingScreen.Hide()
ProcessResults(Result)
End Sub
該應用程序現在完全是單線程的,因此所有內容都在GUI線程上運行。我需要能夠訪問DoSomethingTakingALongTime()
中的對象而不會出現跨線程異常。 GUI線程等待一些方法(需要很長時間)才能完成,而LoadingScreen
表單應該保持響應(它是動畫的/有一個進度條/等)。
這是一個可行的/好的方法,還是我看到這種方式太簡單了?關於這件事的最佳做法是什麼?最重要的是:我怎麼能實現這樣一個系統?正如我已經提到,我很少有線程的經驗,所以請溫柔請:-)
哪個線程?該應用程序構建爲單線程(= GUI線程),它已經使用Application.Run來顯示主窗體。 – 2008-11-25 11:06:39