Multithreading 如何使用IObjectPool接口?

Multithreading 如何使用IObjectPool接口?,multithreading,delphi,pool,spring4d,Multithreading,Delphi,Pool,Spring4d,我想将spring中的IObjectPool应用到我的代码中,以便在我的例子中创建一个对象池,一个线程类。是否有关于spring中的池的示例或文档 是这样的: TMyClass = class(TThread) public constructor Create; procedure Execute; override; end; 另一类: uses .... Spring.Container, Spring.Container.Pool, Sp

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

是这样的:

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


注意。

我没有注意到它说这不起作用,因为它返回nil或引发异常xyz。