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

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

本文简介:选择自 raptor 的 blog

        leavecriticalsection(threadlock);

      end;

    finally

      closehandle(syncproc.signal);

    end;

    if assigned(asyncrec.fsynchronizeexception) then raise asyncrec.fsynchronizeexception;

  end;

end;

这段代码略多一些,不过也不算太复杂。

首先是判断当前线程是否是主线程,如果是,则简单地执行同步方法后返回。

如果不是主线程,则准备开始同步过程。

通过局部变量syncproc记录线程交换数据(参数)和一个event handle,其记录结构如下:

  tsyncproc = record

    syncrec: psynchronizerecord;

    signal: thandle;

  end;

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

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

go top