我創建了vb.net應用程序,並添加了一個名爲frmScan的窗體。 我把兩個文本框和兩個標籤。然後我用代表事件寫下面的 線程。Vb.net中的線程問題
Private Delegate Sub DoInitializedDelegate()
Public motdet As New Thread(AddressOf MotionDetection)
Private Sub MotionDetection()
'Do motion detection Work
'It is never ending Loop until form unload.
End Sub
然後我在我的表單加載事件中啓動它。
Private Sub frmScan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
motdet.Start()
End Sub
所以我的問題開始時,我加載窗體。 我可以看到表單,但它就像加載一些東西。 我認爲我的運動檢測線程永遠不會結束循環,直到窗體卸載。 我無法在上面提到的兩個文本框內輸入任何內容。 我該怎麼辦?
你有沒有想過嘗試BackgroundWorker的,而不是一個線程的?我發現在過去他們更容易地融入表單模型中。 – Adrian
你是否在這個循環中不斷調用'Invoke'?別。 – Ryan
如果它的無限循環不要求你的UI保持響應。減少線程ThreadPriority並使用@Adrian建議的後臺工作者,它們的價值非常大。 – sarepta