delphi 中的一个线程池单元的归纳说明

本文档介绍了在Delphi中实现线程池的详细步骤,包括TBaseThread类的定义,该类作为线程的基础,包含线程的启动、停止、同步方法以及异常处理。此外,还展示了线程管理类TThreadMgr和线程池类TThreadMgrPool的用法,它们用于创建、管理和回收线程资源。
摘要由CSDN通过智能技术生成

unit Ut_CustomThread;

interface
uses
Classes, SysUtils, SyncObjs,Ut_ResourceStrings,Windows;
Type
//基本线程类
TBaseThread = class;
//线程错误处理类
EThreadException = class(Exception);
//线程等待错误处理类
EThreadTerminateAndWaitFor = class(EThreadException);
//线程停止模式
TThreadStopMode = (smTerminate, smSuspend);
//例外线程事件函数事件
TExceptionThreadEvent = procedure(AThread: TBaseThread; AException: Exception) of object;
//线程事件通知函数事件
TNotifyThreadEvent = procedure(AThread: TBaseThread) of object;
//同步线程事件
TSynchronizeThreadEvent = procedure(AThread: TBaseThread; AData: Pointer) of object;
//自定义线程类
TCustomThread = class(TThread)
public
//同步线程方法
procedure Synchronize(Method: TThreadMethod); overload;
//同步方法事件
procedure Synchronize(Method: TMethod); overload;
//返回值
property ReturnValue;
//结束线程
property Terminated;
End;
//基本线程类
TBaseThread = class(TCustomThread)
protected
//数据对象 可以是任何一对象
FData: TObject;
// 临界区 用来线程数据保护同步
FLock: TCriticalSection;
//线程停止模式
FStopMode: TThreadStopMode;
//是否停止
FStopped: Boolean;
//线程例外字符串
FTerminatingException: string;
//线程停止意外类
FTerminatingExceptionClass: TClass;
//意外事件
FOnException: TExceptionThreadEvent;
//通知线程停止事件
FOnStopped: TNotifyThreadEvent;
//
//处理例外时间
procedure DoException (AException: Exception); virtual;
//处理停止事件
procedure DoStopped; virtual;
//具体执行
procedure Execute; override;
//当前线程是否停止
function GetStopped: Boolean;
//抽象运行
procedure Run; virtual; abstract;
public
//运行后
procedure AfterRun; virtual; //3* Not abstract - otherwise it is required
//执行后
procedure AfterExecute; virtual;//5 Not abstract - otherwise it is required
//执行前
procedure BeforeExecute; virtual;//1 Not abstract - otherwise it is required
//运行前
procedure BeforeRun; virtual; //2* Not abstract - otherwise it is required
//释放
procedure Cleanup; virtual;//4*
//创建
constructor Create(ACreateSuspended: Boolean = True); virtual;
//释放
destructor Destroy; override;
//开始
procedure Start; virtual;
// 停止
procedure Stop; virtual;

// Here to make virtual
procedure Terminate; virtual;
//等待推出线程
procedure TerminateAndWaitFor; virtual;
//当前对象
prop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值