作者teamspike (市政府7F)
看板C_Sharp
標題Re: [問題] 試問backgroundworker與thread兩個類別 …
時間Tue Jan 6 11:38:54 2009
※ 引述《regionbbs (小朱)》之銘言:
: ※ 引述《teamspike (市政府7F)》之銘言:
: : 各位前輩晚安
: : 小弟目前使用thread類別撰寫多執行緒處理系統
: : 故需撰寫跨執行緒存取控制項的判斷式
: : 得知有個backgroundworker類別亦是應用新執行緒
: : 並且不用考慮跨執行緒存取控制項問題(?)
: : 請問這兩者有何不同呢?
: : 謝謝
: BackgroundWorker 只是把跨執行緒的作業簡化而已,
: 用 ReportProgress() 和處理 ProgressChanged 事件就能做到了。
: 基本的原理還是用函式委派和 Control.Invoke() 來做。
感謝各位的解答,讓我對於跨執行緒的做法有了初步的概念
不過現在遇到了新的問題
我發現只要有兩個以上的執行緒同時存取主執行緒的同一個控制項
(在此是使用MediaPlayer物件)
就算是使用安全性呼叫(使用委派)
兩個執行緒Start()以後會同時卡住
可是執行個別單一的執行緒都可以順利執行
是不是我遺漏了些什麼步驟?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.216.193
→ teamspike:抱歉不是兩個都卡住,而是卡住其中一個 01/06 11:50
→ teamspike:兩個thread內都是無窮回圈,卻只在其中一個繞 01/06 12:12
→ regionbbs:用Queue來做吧。 01/06 12:24
→ teamspike:可是這兩個執行緒必須同時執行 01/06 13:02
→ teamspike:似乎是資源停在其中一個執行緒無法切換到另一個 01/06 15:26