作者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
1F:→ teamspike:抱歉不是两个都卡住,而是卡住其中一个 01/06 11:50
2F:→ teamspike:两个thread内都是无穷回圈,却只在其中一个绕 01/06 12:12
3F:→ regionbbs:用Queue来做吧。 01/06 12:24
4F:→ teamspike:可是这两个执行绪必须同时执行 01/06 13:02
5F:→ teamspike:似乎是资源停在其中一个执行绪无法切换到另一个 01/06 15:26