A continuous group of layers located at the bottom of the map (i.e., held in the lowest layer(s) of the map project) with layer.Basemap=True.
Such group of layers are rendered in a background thread, independently of the rest of the map. Therefore, viewer methods InvalidateTopmost and InvalidateWholeMap have no effect on a basemap layer. Basemaps are great, for example, presenting webtile layers.
A continuous group of layers located at the top of the map (i.e., held in the highest layer(s) of the map project) with layer.CachedPaint=False.
Such group of layers can be refreshed independently from the rest of the map with viewer method InvalidateTopmost. We call this a "shallow repaint". This is perfect for presenting uncomplicated layers such as for GPS tracking or dynamic editing.
By calling viewer method InvalidateWholeMap, the whole map is refreshed (regular layers and topmost layer). We call this a "deep repaint", which can much slower. A deep repaint is aways performed after map dragging or zooming.