Delphi中的线程类--之(4)[5]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 raptor 的 blog

顺便再介绍一下另一个用于线程同步的类:tmultireadexclusivewritesynchronizer,它是在sysutils单元中定义的。据我所知,这是delphi rtl中定义的最长的一个类名,还好它有一个短的别名:tmrewsync。至于它的用处,我想光看名字就可以知道了,我也就不多说了。

 

有了前面对eventcriticalsection的准备知识,可以正式开始讨论synchronizewaitfor了。

 

我们知道,synchronize是通过将部分代码放到主线程中执行来实现线程同步的,因为在一个进程中,只有一个主线程。先来看看synchronize的实现:

procedure tthread.synchronize(method: tthreadmethod);

begin

  fsynchronize.fthread := self;

  fsynchronize.fsynchronizeexception := nil;

  fsynchronize.fmethod := method;

  synchronize(@fsynchronize);

end;

其中fsynchronize是一个记录类型:

本文关键:Thread Event CriticalSection Synchronize
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top