https://www.dotnetcodegeeks.com/2015/08/reusing-objects-with-generic-object-pooling.html
Reusing objects with generic object pooling