如何使用IObjectPool接口?

时间:2015-02-18 15:28:14

标签: multithreading delphi pool spring4d

我想将spring的IObjectPool应用到我的代码中,以便创建一个对象池(在我的例子中,是一个线程类)。是否有关于春季游泳池的任何示例或文档?。

它是这样的:

TMyClass = class(TThread)
public
    constructor Create;
    procedure Execute; override;
end;

另一堂课:

uses
    ....
    Spring.Container,
    Spring.Container.Pool,
    Spring.Container.Core,
    Spring.Container.ComponentActivator,
    Spring.Services,
    ....;

TOtherClass = class
private
    FPool: IObjectPool;
    FActivator: IComponentActivator;
    ....
end;

implementation

constructor TOtherClass.Create;
begin
    FActivator := ServiceLocator.GetService<IComponentActivator>;
    FPool := TSimpleObjectPool.Create(FActivator, 5 , 10);
    FPool.Initialize(nil);
end;

procedure TOtherClass.AProcedure;
var
    task: TMyTask;
begin
    ...
    task := FPool.GetInstance(nil);
    ...
end;

我正在使用XE6。

问候。

0 个答案:

没有答案