# ObjectPool&lt;T&gt; Constructors

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.providers.streams.common.objectpool-1/)

## ObjectPool&lt;T&gt;(Func&lt;T&gt;, IObjectPoolMonitor, TimeSpan?) {#constructor-system-func-t-orleans-providers-streams-common-iobjectpoolmonitor-sy-a141daeb}

[Dedicated page](/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/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Common/PooledCache/ObjectPool.cs#L33-L51)

```csharp
public ObjectPool(Func<T> factoryFunc, IObjectPoolMonitor monitor = null, TimeSpan? monitorWriteInterval = null)
```

Simple object pool

### Parameters

- `factoryFunc` (`Func<T>`): Function used to create new resources of type T
- `monitor` (`IObjectPoolMonitor`): monitor to report statistics for object pool
- `monitorWriteInterval` (`TimeSpan?`)
