线程初级问题(100分)

  • 主题发起人 主题发起人 foxntbk
  • 开始时间 开始时间
F

foxntbk

Unregistered / Unconfirmed
GUEST, unregistred user!
我建立一个A的线程单元,
在EXECUTE中加入Synchronize。
在主单元调用:
A.resume.
....
发现是A先干完了,才执行下面的语句。不对路!
把Synchronize去掉后再调用,
发现A执行,下面的语句也能同时执行。正常!
很奇怪。不是说在线程里调用VCL就要用Synchronize吗?
为什么加了反而不对?
我是用了ProgressBar1来显示线程的。(DELPHI5)
请大家指点一下。我是初学线程,书上讲的不多。
谢谢。
 
如果确实能保证没有冲突,不用也事可以得
 
D5 thread safe
 
你说的不大清楚,但是有一条是固定的,那就是Synchronize的作用,
它的作用是让本线程暂时让出处理机,把处理机交给VCL线程,事实
上,VCL使用一个独立的线程,一般就叫做VCL线程.
 
Synchronize的机制是为了能够使多个线程在同时存取VCL控件时使
运行过程串行化,并且Synchronize的函数其执行时间也是由系统来
调度的,在主窗体的VCL实现代码中运行.
因为DELPHI对于VCL在使用GUI资源时使用了一套自己的办法.
 
接受答案了.
 
后退
顶部