I'm calling the function below several thousand times, but it just seems to increase memory usage until it falls over. I've tried Marshal.ReleaseComObject and ComReleaser without any luck. It seems to be related to the buffered geometry as if I give the non buffered geometry (SiteGeometry) to pSpatialFilter it seems fine.
Any ideas how i release the memory used by this function?
Public Function doSearch(ByVal SiteGeometry As IGeometry, ByVal SearchLayer As IFeatureClass, ByVal Buffer As Integer, ByVal shapeField As String) As Integer
Dim topoOP As ITopologicalOperator2
Dim pSpatialFilter As ISpatialFilter = New SpatialFilter
topoOP = SiteGeometry
Dim pGeometryBuff As IGeometry = topoOP.Buffer(Buffer)
.Geometry = pGeometryBuff
.GeometryField = shapeField
.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects
Dim theRowcount As Integer = SearchLayer.FeatureCount(pSpatialFilter)
topoOP = Nothing
pSpatialFilter = Nothing
pGeometryBuff = Nothing
pBC = Nothing