请教多线程中的Synchronize()问题?(50分)

  • 主题发起人 主题发起人 c4
  • 开始时间 开始时间
C

c4

Unregistered / Unconfirmed
GUEST, unregistred user!
仅仅只是引用form上控件的属性的值,要不要放在synchronize中?
如下面的语句:
var
s:sting
...
s:=MainForm.Edit1.Text
...
 
如果只有一个线程可以不用,反之必须用。
 
安全考虑,只要在线程中访问[red]vcl构件的属性[/red]就必须要使用同步技术!并且要将访问
语句拿到线程的execute过程外,写成一个过程,然后在线程中使用synchronize(过程名)进行同步。
 
其实你可以试试,有时候你只访问vcl的属性而不加同步是可以编译并运行的,但是为了保险
起见还是加上吧,省的有不必要的麻烦。我就深受其苦啊:(
 
多人接受答案了。
 
后退
顶部