Only latest Xamarin has templated WeakReference support.
Added locks around use of the list using WeakReferences to make sure it doesn't break with multithreading.