Re: [問題] 試問backgroundworker與thread兩個類別 …

看板C_Sharp作者 (市政府7F)時間17年前 (2009/01/06 11:38), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《regionbbs (小朱)》之銘言: : ※ 引述《teamspike (市政府7F)》之銘言: : : 各位前輩晚安 : : 小弟目前使用thread類別撰寫多執行緒處理系統 : : 故需撰寫跨執行緒存取控制項的判斷式 : : 得知有個backgroundworker類別亦是應用新執行緒 : : 並且不用考慮跨執行緒存取控制項問題(?) : : 請問這兩者有何不同呢? : : 謝謝 : BackgroundWorker 只是把跨執行緒的作業簡化而已, : 用 ReportProgress() 和處理 ProgressChanged 事件就能做到了。 : 基本的原理還是用函式委派和 Control.Invoke() 來做。 感謝各位的解答,讓我對於跨執行緒的做法有了初步的概念 不過現在遇到了新的問題 我發現只要有兩個以上的執行緒同時存取主執行緒的同一個控制項 (在此是使用MediaPlayer物件) 就算是使用安全性呼叫(使用委派) 兩個執行緒Start()以後會同時卡住 可是執行個別單一的執行緒都可以順利執行 是不是我遺漏了些什麼步驟? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.216.193

01/06 11:50, , 1F
抱歉不是兩個都卡住,而是卡住其中一個
01/06 11:50, 1F

01/06 12:12, , 2F
兩個thread內都是無窮回圈,卻只在其中一個繞
01/06 12:12, 2F

01/06 12:24, , 3F
用Queue來做吧。
01/06 12:24, 3F

01/06 13:02, , 4F
可是這兩個執行緒必須同時執行
01/06 13:02, 4F

01/06 15:26, , 5F
似乎是資源停在其中一個執行緒無法切換到另一個
01/06 15:26, 5F
文章代碼(AID): #19Oj9Fou (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #19Oj9Fou (C_Sharp)