# ObjectPool&lt;T&gt;

Package: [Microsoft.Orleans.Streaming](/orleans/docs/api/csharp/microsoft.orleans.streaming/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Streaming) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/ObjectPool.cs#L13)

```csharp
public class ObjectPool<T> : IObjectPool<T>
    where T : Orleans.Providers.Streams.Common.PooledResource<T>
```

Simple object pool that uses a stack to store available objects.

## Constructors

- [ObjectPool&lt;T&gt;(Func&lt;T&gt;, IObjectPoolMonitor, TimeSpan?)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.objectpool-1/constructors/constructor-system-func-t-orleans-providers-streams-common-iobjectpoolmonitor-sy-a141daeb/)

## Methods

- [Allocate](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.objectpool-1/methods/allocate-91405290/)
- [Free(T)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.objectpool-1/methods/free-t-0fcd38ed/)
