[.NET] 多執行緒問題

作者: noworneverev (小朋友)   2018-04-01 13:13:38
請輸入專案類型(網站專案或者應用程式專案):VB .NET
小弟有個winform主程式已經完成,但因為裡面有幾個迴圈,會跑比較久
想在點選啟動的按鈕時,同時開啟另一個winform放張正在載入的圖,
目前想到是用threading處理,
Imports System.Threading
Private Sub Progress()
'Loading是放載入圖的winform
Dim f As Loading = New Loading()
f.Show()
f.BringToFront()
End Sub
主程式:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Dim t As Thread
t = New Thread(AddressOf Progress)
t.Start()
'....
'some code here
t.abort()
end sub
現在的問題是啟動時loading的winform會閃一下後馬上消失,不知道原因,
即使後面沒有寫abort也是會立刻消失
但如果在Progress的子程序加上個msgbox(""),就不會立刻跳掉,
想請問這問題該如何解決?畢竟多加個msgbox會很奇怪
謝謝!
作者: jerick (傑.J)   2018-05-17 22:47:00
因為 Progress 執行完,其在 Progress 內宣告的物建也會被釋放。你可以試試把 Dim f As Loading 放到外面當成公用變數。試試。

Links booklink

Contact Us: admin [ a t ] ucptt.com