[.NET] 關於執行緒以及傳值的問題

看板Visual_Basic作者 (....)時間13年前 (2012/04/03 15:00), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):應用程式專案 我想問各位一個問題來釐清我的觀念 假設我在我的form按一個按鈕他就會執行迴圈 ex: 1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As 2. System.EventArgs) Handles Button3.Click 3. Dim Item As String 4. For Each Item In ListBox1.SelectedItems 5. Dim Filenum As Integer 6. ThreadPool.QueueUserWorkItem( _ 7. New WaitCallback(AddressOf RunLoop)) parameter = Item.toString() ===>新增的code 8. Debug.WriteLine("end") 9. Next 10. End Sub Sub Runloop() Debug.WriteLine("start") End Sub 迴圈裏面還有寫了一個 Runloop的Sub請thread去執行 我的觀念是當程式執行到第6行會跳去處理Runloop 接著再回來執行第8行以後的code 輸出的結果我認為是 start end start end 但我發現他會先把迴圈執行完 才會去執行Runloop@@ 執行結果如下 end end start start 請問各位 我的觀念是錯在哪裡 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.6.195

04/03 15:30, , 1F
阿你要他同時執行為何不直接呼叫RunLoop就好
04/03 15:30, 1F

04/03 15:31, , 2F
你thread都用了當然是呈現threaded exec的結果
04/03 15:31, 2F

04/03 15:42, , 3F
如果說我想要我的thread 根據放不同的參數執行thread呢?
04/03 15:42, 3F
※ 編輯: gais 來自: 140.96.6.195 (04/03 15:43)

04/03 15:43, , 4F
我新增了一行code parameter = Item.toString()
04/03 15:43, 4F

04/03 23:17, , 5F
看不懂你加這一行有任何用處
04/03 23:17, 5F

04/03 23:25, , 6F
我的目的是 想讓兩個執行緒能夠同時執行 但是餵的參數不一樣
04/03 23:25, 6F

05/15 13:53, , 7F
顯然你誤會執行緒了,基本上你叫用執行緒後,他就會自己去做
05/15 13:53, 7F

05/15 13:54, , 8F
事了,所以誰先完成誰後完成是由CPU決定的了!
05/15 13:54, 8F
文章代碼(AID): #1FUg0OmC (Visual_Basic)