All my images are loaded from the internet and cached using the XF ImageSource & Image functionality .... thanks for that!
However, I get an intermittent error where it appears that it is trying to write the same file twice and failing with a sharing violation. Obviously the app crashes and I have no way to guard against it.
I haven't tried it yet but I expect an easy way to reproduce it would be to create a list with 100 or more items all referencing & caching the same small image.
[IOException: Sharing violation on path http%3A%2F%2Ffiles.parsetfss.com%2Fa8c31702-e325-44f8-9555-1037f0345f03%2Ftfss-3bc42d9e-16fa-44c0-b170-f40eb3a31c60-thumb.png]
System.IO.FileStream..ctor(System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) in <filename unknown>:0
System.IO.FileStream..ctor(System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean isAsync, Boolean anonymous) in <filename unknown>:0
System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, System.IO.IsolatedStorage.IsolatedStorageFile isf) in <filename unknown>:0
System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(System.String path, FileMode mode, FileAccess access, System.IO.IsolatedStorage.IsolatedStorageFile isf) in <filename unknown>:0
System.IO.IsolatedStorage.IsolatedStorageFile.OpenFile(System.String path, FileMode mode, FileAccess access) in <filename unknown>:0
Xamarin.Forms.Forms+IOSPlatformServices+_IsolatedStorageFile.OpenFile(System.String path, FileMode mode, FileAccess access) in <filename unknown>:0
Xamarin.Forms.UriImageSource+<GetStreamAsyncUnchecked>d__1c.MoveNext() in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in <filename unknown>:0
System.Runtime.CompilerServices.TaskAwaiter`1[System.IO.Stream].GetResult() in <filename unknown>:0
Xamarin.Forms.UriImageSource+<GetStreamAsync>d__14.MoveNext() in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in <filename unknown>:0
System.Runtime.CompilerServices.TaskAwaiter`1[System.IO.Stream].GetResult() in <filename unknown>:0
Xamarin.Forms.UriImageSource+<GetStreamAsync>d__f.MoveNext() in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in <filename unknown>:0
System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[System.IO.Stream].GetResult() in <filename unknown>:0
Xamarin.Forms.Platform.iOS.ImageLoaderSourceHandler+<LoadImageAsync>d__0.MoveNext() in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in <filename unknown>:0
System.Runtime.CompilerServices.TaskAwaiter`1[MonoTouch.UIKit.UIImage].GetResult() in <filename unknown>:0
Xamarin.Forms.Platform.iOS.ImageRenderer+<SetImage>d__0.MoveNext() in <filename unknown>:0