温莎的汇集定制生活方式阻止

时间:2011-08-04 14:37:55

标签: castle-windsor

我需要服务。该要求规定我必须达到服务的N个实例。如果没有实例可用阻塞/等待直到释放一个实例,然后返回可用实例。这与合并的生活方式非常相似。

我对Pooled Lifestyle的理解是:

  • 首次请求时,将创建N个对象(其中N是最大池大小)
  • 当收到对象的请求时,池化生活方式最初会从池中返回一个对象,直到池中的所有对象都“正在使用”
  • 当所有对象都在“使用中”时,会创建其他对象(超出最大池大小的范围)。
  • 当对象被释放时,它们将被销毁(如果超过最大池大小)或返回池中(如果小于最大池大小)。

这与我想要的行为相似,但略有不同。不要创建超出最大池大小的对象,等待释放“正在使用”的对象,然后返回可用对象。

有什么想法吗?这可以在不阻止其他线程上的其他容器分辨率的情况下完成吗?

1 个答案:

答案 0 :(得分:2)

您需要实现IPoolFactoryIPool并在容器中注册工厂。然后你的游泳池就可以做你需要的任何事情,包括阻挡。