blob: 1b3823c7bf886ae7bca1732a96ba0e758031a0a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
using System.Collections.Concurrent;
using MapKit;
#if __MOBILE__
namespace Xamarin.Forms.Maps.iOS
#else
namespace Xamarin.Forms.Maps.MacOS
#endif
{
// A static pool of MKMapView instances we can reuse
internal class MapPool
{
static MapPool s_instance;
public static MapPool Instance => s_instance ?? (s_instance = new MapPool());
internal readonly ConcurrentQueue<MKMapView> Maps = new ConcurrentQueue<MKMapView>();
public static void Add(MKMapView mapView)
{
Instance.Maps.Enqueue(mapView);
}
public static MKMapView Get()
{
MKMapView mapView;
return Instance.Maps.TryDequeue(out mapView) ? mapView : null;
}
}
}
|