S shilei525918 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-28 #1 线程中的 synchronize 的作用是什么,谁能给个详细的解释
L liyong0775 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-28 #2 synchronize 作用是让线程的一些方法在在主线程中执行,一般用于与VCL同步。
W WickedladII Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-28 #3 VCL是非线程安全的,所以Borland提供了一个synchronize,让你能够在线程中放心的调用VCL,也就是说,synchronize中的所有内容都是在主线程中执行(而不是在线程中,废话),很安全,但效率也很低。
VCL是非线程安全的,所以Borland提供了一个synchronize,让你能够在线程中放心的调用VCL,也就是说,synchronize中的所有内容都是在主线程中执行(而不是在线程中,废话),很安全,但效率也很低。
S starxes Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-28 #5 synchronize是通过主窗体的消息机制实现对其参数指定函数的同步调用,因为主窗体消息是串行执行的(一个消息代码执行结束后才进入另外一个消息代码的处理),所以可以避免出现对窗体中的可视组件的同时操作,一般只用于线程中操作窗体中的显示控件。
synchronize是通过主窗体的消息机制实现对其参数指定函数的同步调用,因为主窗体消息是串行执行的(一个消息代码执行结束后才进入另外一个消息代码的处理),所以可以避免出现对窗体中的可视组件的同时操作,一般只用于线程中操作窗体中的显示控件。
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-29 #7 就是给主线程发个消息,让主线程执行完子线程中指定的函数后再返回一个消息。
N Neo_leaf Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-11 #8 synchronize好像主要用来调用线程中的方法过程, 俺也是刚学这个, 帮楼主顶下,
V VictorWoo Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-18 #9 多个线程同时访问VCL(窗体上的控件等)会出问题。 把代码放在Synchronize中,Delphi就可以将访问VCL的顺序错开(实际上是串行地访问VCL)这样避免了上述问题。 也由于这个特性,不要在Synchronize中放太多业务代码,一般线程中的业务结束以后Synchronize显示一下即可,否则界面会假死
多个线程同时访问VCL(窗体上的控件等)会出问题。 把代码放在Synchronize中,Delphi就可以将访问VCL的顺序错开(实际上是串行地访问VCL)这样避免了上述问题。 也由于这个特性,不要在Synchronize中放太多业务代码,一般线程中的业务结束以后Synchronize显示一下即可,否则界面会假死
A andy san Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-20 #12 既然 "synchronize 作用是让线程的一些方法在在主线程中执行,一般用于与VCL同步。" (试过,确实是这个样子); 我想问一下,如何真正的实现多线程的同步?举个例子: foxmail中多个帐户的邮件接收就是多线程同步,并且调用同一个提示窗体,它们是同步接收,我也想实现这中效果,但是我用synchronize就会一个接收完后另一个接收,如何实现foxmail的那种效果?盼高手做答.
既然 "synchronize 作用是让线程的一些方法在在主线程中执行,一般用于与VCL同步。" (试过,确实是这个样子); 我想问一下,如何真正的实现多线程的同步?举个例子: foxmail中多个帐户的邮件接收就是多线程同步,并且调用同一个提示窗体,它们是同步接收,我也想实现这中效果,但是我用synchronize就会一个接收完后另一个接收,如何实现foxmail的那种效果?盼高手做答.
V VictorWoo Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-20 #13 呵呵, 1.MainForm里可以创建X个线程分别接收X个邮箱的邮件 2.MainForm创建线程是瞬间返回的 3.X个线程分头工作,业务处理完的时候(或者进度++的时候),synchronize到主窗体上显示一些信息 这样编写,看起来就是同时接收,只是显示的时候总得有先有后吧-_-,就是你要的效果了
呵呵, 1.MainForm里可以创建X个线程分别接收X个邮箱的邮件 2.MainForm创建线程是瞬间返回的 3.X个线程分头工作,业务处理完的时候(或者进度++的时候),synchronize到主窗体上显示一些信息 这样编写,看起来就是同时接收,只是显示的时候总得有先有后吧-_-,就是你要的效果了