作者teamspike (市政府7F)
看板C_Sharp
标题Re: [问题] 试问backgroundworker与thread两个类别 …
时间Tue Jan 6 15:33:58 2009
※ 引述《teamspike (市政府7F)》之铭言:
: ※ 引述《regionbbs (小朱)》之铭言:
: : BackgroundWorker 只是把跨执行绪的作业简化而已,
: : 用 ReportProgress() 和处理 ProgressChanged 事件就能做到了。
: : 基本的原理还是用函式委派和 Control.Invoke() 来做。
: 感谢各位的解答,让我对於跨执行绪的做法有了初步的概念
: 不过现在遇到了新的问题
: 我发现只要有两个以上的执行绪同时存取主执行绪的同一个控制项
: (在此是使用MediaPlayer物件)
: 就算是使用安全性呼叫(使用委派)
: 两个执行绪Start()以後会同时卡住
: 可是执行个别单一的执行绪都可以顺利执行
: 是不是我遗漏了些什麽步骤?
: 谢谢
其中一个执行绪是使用Label.InvokeRequired属性来做delegate
另一个是用MediaPlayer.Dispatcher.CheckAccess()方法来做delegate
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.216.193
1F:→ teamspike:是不是要在适当的地方加Thread.sleep()呢? 01/06 15:58
2F:→ teamspike:似乎是遇上race condition 01/06 17:14