Multithreading 如何使用IObjectPool接口?
我想将spring中的IObjectPool应用到我的代码中,以便在我的例子中创建一个对象池,一个线程类。是否有关于spring中的池的示例或文档 是这样的: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
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。