blob: dc8a9c47e3c829f7812ad624577367a22348066b (
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
|
using System.Collections.Concurrent;
using MapKit;
namespace Xamarin.Forms.Maps.iOS
{
// 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;
}
}
}
|