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
- Try/catch on skia renderer to mitigate #291 — committed to Mapsui/Mapsui by pauldendulk 6 years ago
- Removing public IFeature from MemoryProvider for #291 — committed to Mapsui/Mapsui by pauldendulk 6 years ago
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.