Hi,
My advice is don't call it in a loop, that method spawns a new thread and we would not do that in a loop, it is never called in a loop from mojoportal code.
Keep in mind also that page objects are not really indexed at all, only content features that live on pages are indexed, pages are just containers for features and they have no content of their own. So when a page is deleted we have to call the indexer for each feature and tell it to delete any index content for the feature that is one the given page id.
If you are writing some custom code to delete things from the index in a loop, you should just use code similar to code in the method IndexHelper.RemoveInfex(IndexItem, indexpath)
That is you create IndexingQueue objects which get serialized into the mp_IndexingQueue table, then call SiteUtils.QueueIndexing() one time after all the looping is done. This will spawn a single task to process the queue and delete the items.
Hope that helps,
Joe