Mapsui: Collection was modified; enumeration operation may not execute. (iOS)

I just started to use cloud based analytics services for my apps and since the release yesterday I already got ~300 reports with this error (from 9500 active users since than):

ThrowHelper.ThrowInvalidOperationException (System.ExceptionResource resource)
List`1+Enumerator[T].MoveNextRare ()
List`1+Enumerator[T].MoveNext ()
System.Collections.Generic.List`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection) <0x10125db30 + 0x00287> in :0
Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source)
VisibleFeatureIterator.IterateLayer (Mapsui.IViewport viewport, Mapsui.Layers.ILayer layer, System.Action`3[T1,T2,T3] callback)
VisibleFeatureIterator.IterateLayers (Mapsui.IViewport viewport, System.Collections.Generic.IEnumerable`1[T] layers, System.Action`3[T1,T2,T3] callback)
MapRenderer.Render (SkiaSharp.SKCanvas canvas, Mapsui.IViewport viewport, System.Collections.Generic.IEnumerable`1[T] layers)
MapRenderer.Render (SkiaSharp.SKCanvas canvas, Mapsui.IViewport viewport, System.Collections.Generic.IEnumerable`1[T] layers, System.Collections.Generic.IEnumerable`1[T] widgets, Mapsui.Styles.Color background)
MapRenderer.Render (System.Object target, Mapsui.IViewport viewport, System.Collections.Generic.IEnumerable`1[T] layers, System.Collections.Generic.IEnumerable`1[T] widgets, Mapsui.Styles.Color background)
MapControl.OnPaintSurface (System.Object sender, SkiaSharp.Views.iOS.SKPaintGLSurfaceEventArgs skPaintSurfaceEventArgs)
SKGLView.DrawInSurface (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget)
SKGLView.DrawInRect (GLKit.GLKView view, CoreGraphics.CGRect rect)
(wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate)
UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName)
Application.Main (System.String[] args)

Not sure if this happens in Mapsui or in SkiaSharp. Currently I wait that the symbol files are processed by the AppCenter to get more details (hopefully).

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 26 (19 by maintainers)

Commits related to this issue

Most upvoted comments

It looks like I managed to implement charlenni’s ideas.

layer.DataSource = new MemoryProvider(MyFeatureProvider()); layer.ClearCache(); layer.ViewChanged(true, layer.Envelope, 1);

and

mapControl.NativeMap.ViewChanged(true);

works for me without mapControl.Refresh()

Many thanks again.