使用delphi开发应用程序多年了,多线程开发也应用较多,近来想想,
多线程同步这一关键问题,感觉自己使用的方法较为简单:临界区,互斥量;如果是多个线程之间要在高速工作环境下进行同步,又如何更好地实现呢?于是上网找了线程同步方法,呵~~,方法很多,其中就有使用事件机制实现线程同步的;
自己平时用SPCOMM较多,研究其源码也较多,因此想通过事件来实现一下线程间的同步。想到就做到。动手吧!
Delphi7+winxp+sp2;呵~~,先定义一个线程类吧。
type
TNew_thread=class(TThread) //自定义线程类
private
FCloseEvent:THandle; //线程退出事件
FExecuteEvent:THandle; //线程操作事件
FMemo:TMemo;
FTimer:TTimer; //定时触发事件用的定时器,后来扩展了一下,仅试验用;
protected
procedure Execute;Override;
procedure dosth;
procedure DoExitThrd;
public
procedure Start;
procedure stopthread;
constructor create(aMemo:Tmemo);
procedure DoTimer(Sender:TObject);