多线程中如何使用Synchronize函数?(100分)

  • 主题发起人 主题发起人 zyq.ks
  • 开始时间 开始时间
Z

zyq.ks

Unregistered / Unconfirmed
GUEST, unregistred user!
调用函数何时需加Synchronize?
写多线程程序应注意什么?
 
传一个无参数的过程给它.
 
多线程中与vcl有关的操作,尤其是可视控件的操作应当用Synchronize调用过程
因为vcl大多不是线程安全的
当然,如果可能多线程对同一个资源操作,就要考虑线程同步问题
 
在这个保护方法里执行的过程最好不要太耗时间,因为这样也和在主窗口
里执行是一样的
 
看一看Delphi自带的那个气泡、选择、快速三种排序的例子吧。最好先看看多线程方面的书。
单单问Synchronize,意义不大啊。看了那些书之后,你就会觉得,使用Synchronize是多
线程编程中最简单的事了。
 
Synchronize是否只在线程中命名用,在线程要调用的那个过程或函数中要不要使用?
 
线程里调用的函数不需要的,不过这个要看情况,如果是调用VCL可视化的
控件的函数是需要的,其他函数由于TThread自己做了处理,解决了函数多
线程重入的问题,所以不用保护了
 
张无忌真是苦口婆心啊![:D]
zyq.ks:
我绝对没有别的意思,你确实应该找一本书先看看。
 
xxx.Threaddo;
begin
//do some thing
end;

Synchronize(Threaddo);
 
我想问一个问题!如果我只起一个线程的话,访问VCL要不要用Synchronize!,
 
也要用保护方法!!!
 
只用一个线程,那就意味着只有主线程了.
这种情况下,当然不用Synchoronize了.
但一说到多线程,肯定有两个或更多个的线程的.
在非主线程中,访问VCL,是要用Synchronize的.
 
多人接受答案了。
 
后退
顶部