using System; using System.Collections.Generic; using System.Threading; namespace ACE.Entity.Models { public static class PropertiesTextureMapExtensions { public static int GetCount(this IList value, ReaderWriterLockSlim rwLock) { if (value == null) return 0; rwLock.EnterReadLock(); try { return value.Count; } finally { rwLock.ExitReadLock(); } } public static List Clone(this IList value, ReaderWriterLockSlim rwLock) { if (value == null) return null; rwLock.EnterReadLock(); try { return new List(value); } finally { rwLock.ExitReadLock(); } } public static void CopyTo(this IList value, ICollection destination, ReaderWriterLockSlim rwLock) { if (value == null) return; rwLock.EnterReadLock(); try { foreach (var entry in value) destination.Add(entry); } finally { rwLock.ExitReadLock(); } } } }