[.NET] 多執行緒問題

看板Visual_Basic作者 (小朋友)時間6年前 (2018/04/01 13:13), 編輯推噓0(004)
留言4則, 1人參與, 6年前最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):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會很奇怪 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.92.230 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1522559623.A.F71.html

05/17 22:47, 6年前 , 1F
因為 Progress 執行完,其在 Progress 內宣告的物建也會被
05/17 22:47, 1F

05/17 22:47, 6年前 , 2F
釋放。
05/17 22:47, 2F

05/17 22:49, 6年前 , 3F
你可以試試把 Dim f As Loading 放到外面當成公用變數。
05/17 22:49, 3F

05/17 22:50, 6年前 , 4F
試試。
05/17 22:50, 4F
文章代碼(AID): #1Qm6g7zn (Visual_Basic)
文章代碼(AID): #1Qm6g7zn (Visual_Basic)