什么是Synchronize同步,我不太明白,请高手指点(20分)

  • 主题发起人 主题发起人 jxa
  • 开始时间 开始时间
J

jxa

Unregistered / Unconfirmed
GUEST, unregistred user!
什么是Synchronize同步
我在附属线程中
要对主窗口中的Memo添加内容
是否必须用Synchronize调用方法
多多指教,在线等
 
可以不用,但前提条件是主窗口所在线程不会修改该Memo,如果有多个线程需要修改该Memo,则需要Synchronize
 
必须使用synchronize来修改memo的内容.即使主线程不更改Memo.
 
到底谁对谁错
帮忙啊
 
为什么没人回答呀
 
我想是lee*正确
 
请大家详细说一下好吗!
 
LeeChange说的是对的,大部分的VCL都是线程不安全的!如果多线程写必须提到主线程执行!!!!
 
这因是个原则问题吧,至少这是个习惯!!!
如果所有线程(含主线程)只是读取,则不必!
 
其实是
我在主窗口中放了一个TWebBrowser
负责取得网页的内容
在附属线程要用到它来取得网页的内容
执行取得网页内容的这个过程是否应带上Synchronize!
 
大部分的VCL都是线程不安全的!如果多线程写必须提到主线程执行!!!!
如果附属线程的主要功能是读写VCL,那么还是不要用多线程,使用Synchronize同步实际上是由主线程执行附属线程的代码.
 
使用Synchronize是将其放至主线程执行!
不太明白你的意思,其实可以自己试一下!
 
附属 thread 要和主通信,必须通过同步函数;因为,不能直接在附属thread 内操纵主现成的对象和数据等,这样容易导致问题;最好,通过同步,让系统完成 住现成和附属现成的通信和交流....
有问题来信...我可以给你 详细example 解释...
 
vcl线程不安全是相对的. 只要能保证同时只有一个线程在读写它, 那么就是安全的, 一般可视控件都不是线程安全的(除了少数几个), 因为你要在线程中读写可视控件的话, 那么就有可能有两个线程在同时操作它(你的读写线程和主线程的屏幕刷新). 一般不可视控件如果能保证只有一个线程在读写(不管是不是主线程)可以说都是安全的.
 

Similar threads

回复
0
查看
863
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部